Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(301)

Side by Side Diff: src/site/codelabs/web-ui-writer/index.html

Issue 35913002: Try Dart 1 hour experience first draft (Closed) Base URL: https://github.com/dart-lang/dartlang.org.git@master
Patch Set: updated image of dart editor with new directory name Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/site/codelabs/web-ui-writer/images/image41.png ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 <html><head><title>IO 2013 Dart Codelab</title><meta content="text/html; charset =UTF-8" http-equiv="content-type"><style type="text/css">@import url('https://th emes.googleusercontent.com/fonts/css?kit=chteh0fSOiSrmusp8u43YAdDjahd2IAEL5IFmyN QJ7o');.lst-kix_qeukrmzdd856-8>li{counter-increment:lst-ctn-kix_qeukrmzdd856-8}o l.lst-kix_qeukrmzdd856-7.start{counter-reset:lst-ctn-kix_qeukrmzdd856-7 0}.lst-k ix_jpf3cr7xe1pc-0>li{counter-increment:lst-ctn-kix_jpf3cr7xe1pc-0}.lst-kix_dblgi l8t24zy-3>li:before{content:"" counter(lst-ctn-kix_dblgil8t24zy-3,decimal) ". "} .lst-kix_jpf3cr7xe1pc-4>li{counter-increment:lst-ctn-kix_jpf3cr7xe1pc-4}.lst-kix _1c0w7icorqz1-8>li:before{content:"" counter(lst-ctn-kix_1c0w7icorqz1-8,lower-ro man) ". "}ol.lst-kix_qz5wp1hdd24k-6.start{counter-reset:lst-ctn-kix_qz5wp1hdd24k -6 0}ol.lst-kix_nho7sy6cpfv0-0.start{counter-reset:lst-ctn-kix_nho7sy6cpfv0-0 0} ol.lst-kix_hvjet9voiiio-4{list-style-type:none}ol.lst-kix_5f9palqqt4mm-1.start{c ounter-reset:lst-ctn-kix_5f9palqqt4mm-1 0}ol.lst-kix_hvjet9voiiio-5{list-style-t ype:none}.lst-kix_nhaic9xr6pf-6>li{counter-increment:lst-ctn-kix_nhaic9xr6pf-6}o l.lst-kix_hvjet9voiiio-2{list-style-type:none}ol.lst-kix_hvjet9voiiio-3{list-sty le-type:none}.lst-kix_1c0w7icorqz1-3>li{counter-increment:lst-ctn-kix_1c0w7icorq z1-3}ol.lst-kix_hvjet9voiiio-8{list-style-type:none}ol.lst-kix_32zxnvl59py3-8.st art{counter-reset:lst-ctn-kix_32zxnvl59py3-8 0}ol.lst-kix_hvjet9voiiio-6{list-st yle-type:none}ol.lst-kix_hvjet9voiiio-7{list-style-type:none}.lst-kix_jpf3cr7xe1 pc-5>li{counter-increment:lst-ctn-kix_jpf3cr7xe1pc-5}ol.lst-kix_nhaic9xr6pf-6.st art{counter-reset:lst-ctn-kix_nhaic9xr6pf-6 0}.lst-kix_2uog6ch44jpu-0>li{counter -increment:lst-ctn-kix_2uog6ch44jpu-0}ol.lst-kix_hvjet9voiiio-0{list-style-type: none}ol.lst-kix_hvjet9voiiio-1{list-style-type:none}.lst-kix_qz5wp1hdd24k-5>li:b efore{content:"" counter(lst-ctn-kix_qz5wp1hdd24k-5,lower-roman) ". "}.lst-kix_j 51xhhtple7c-8>li{counter-increment:lst-ctn-kix_j51xhhtple7c-8}.lst-kix_1gqf2s78t 7o1-8>li:before{content:"" counter(lst-ctn-kix_1gqf2s78t7o1-8,lower-roman) ". "} .lst-kix_nhaic9xr6pf-1>li:before{content:"" counter(lst-ctn-kix_nhaic9xr6pf-1,lo wer-latin) ". "}.lst-kix_32zxnvl59py3-3>li{counter-increment:lst-ctn-kix_32zxnvl 59py3-3}.lst-kix_5f9palqqt4mm-6>li:before{content:"" counter(lst-ctn-kix_5f9palq qt4mm-6,decimal) ". "}.lst-kix_nhaic9xr6pf-7>li:before{content:"" counter(lst-ct n-kix_nhaic9xr6pf-7,lower-latin) ". "}ol.lst-kix_sgsi64vug03j-2.start{counter-re set:lst-ctn-kix_sgsi64vug03j-2 0}ol.lst-kix_pza3ybm1wtg3-5.start{counter-reset:l st-ctn-kix_pza3ybm1wtg3-5 0}ol.lst-kix_60g29afx0lof-4.start{counter-reset:lst-ct n-kix_60g29afx0lof-4 0}.lst-kix_jpf3cr7xe1pc-7>li{counter-increment:lst-ctn-kix_ jpf3cr7xe1pc-7}ol.lst-kix_vnvg10gwrc8t-7.start{counter-reset:lst-ctn-kix_vnvg10g wrc8t-7 0}.lst-kix_i2v077rod1nx-5>li:before{content:"\0025a0 "}ol.lst-kix_z7in7 d1ar2zt-3.start{counter-reset:lst-ctn-kix_z7in7d1ar2zt-3 0}ol.lst-kix_9tkaqbe3bn u3-6.start{counter-reset:lst-ctn-kix_9tkaqbe3bnu3-6 0}ol.lst-kix_p8a3u4ougab9-4. start{counter-reset:lst-ctn-kix_p8a3u4ougab9-4 0}.lst-kix_t7any4lo9hoq-3>li:befo re{content:"\0025cf "}ol.lst-kix_lixznqbqiris-1.start{counter-reset:lst-ctn-kix _lixznqbqiris-1 0}.lst-kix_1g0xzctl1vi-6>li{counter-increment:lst-ctn-kix_1g0xzc tl1vi-6}.lst-kix_a4uqy1hx9g3-2>li:before{content:"\0025a0 "}ol.lst-kix_5f9palqq t4mm-7.start{counter-reset:lst-ctn-kix_5f9palqqt4mm-7 0}.lst-kix_32zxnvl59py3-8> li:before{content:"" counter(lst-ctn-kix_32zxnvl59py3-8,lower-roman) ". "}.lst-k ix_9tkaqbe3bnu3-6>li{counter-increment:lst-ctn-kix_9tkaqbe3bnu3-6}ol.lst-kix_j51 xhhtple7c-1.start{counter-reset:lst-ctn-kix_j51xhhtple7c-1 0}.lst-kix_wzk0mdv2qg 9u-1>li{counter-increment:lst-ctn-kix_wzk0mdv2qg9u-1}.lst-kix_j51xhhtple7c-3>li{ counter-increment:lst-ctn-kix_j51xhhtple7c-3}.lst-kix_juntnht2kzza-4>li{counter- increment:lst-ctn-kix_juntnht2kzza-4}.lst-kix_i2v077rod1nx-4>li:before{content:" \0025cb "}.lst-kix_7kmxmbi2lsws-6>li{counter-increment:lst-ctn-kix_7kmxmbi2lsws -6}ol.lst-kix_1gqf2s78t7o1-4.start{counter-reset:lst-ctn-kix_1gqf2s78t7o1-4 0}ol .lst-kix_qeukrmzdd856-0{list-style-type:none}ol.lst-kix_qeukrmzdd856-1{list-styl e-type:none}ol.lst-kix_qeukrmzdd856-2{list-style-type:none}.lst-kix_p8a3u4ougab9 -6>li{counter-increment:lst-ctn-kix_p8a3u4ougab9-6}.lst-kix_8uscekru9dbw-5>li:be fore{content:"" counter(lst-ctn-kix_8uscekru9dbw-5,lower-roman) ". "}.lst-kix_nh o7sy6cpfv0-5>li{counter-increment:lst-ctn-kix_nho7sy6cpfv0-5}.lst-kix_kf08e4mo0q 15-3>li:before{content:"" counter(lst-ctn-kix_kf08e4mo0q15-3,decimal) ". "}.lst- kix_pza3ybm1wtg3-5>li:before{content:"" counter(lst-ctn-kix_pza3ybm1wtg3-5,lower -roman) ". "}ol.lst-kix_8uscekru9dbw-1.start{counter-reset:lst-ctn-kix_8uscekru9 dbw-1 0}ol.lst-kix_dblgil8t24zy-5.start{counter-reset:lst-ctn-kix_dblgil8t24zy-5 0}.lst-kix_60g29afx0lof-3>li:before{content:"" counter(lst-ctn-kix_60g29afx0lof -3,decimal) ". "}ol.lst-kix_5f9palqqt4mm-4.start{counter-reset:lst-ctn-kix_5f9pa lqqt4mm-4 0}.lst-kix_juntnht2kzza-6>li:before{content:"" counter(lst-ctn-kix_jun tnht2kzza-6,decimal) ". "}ol.lst-kix_32zxnvl59py3-7.start{counter-reset:lst-ctn- kix_32zxnvl59py3-7 0}.lst-kix_dblgil8t24zy-4>li{counter-increment:lst-ctn-kix_db lgil8t24zy-4}ol.lst-kix_qeukrmzdd856-8{list-style-type:none}ol.lst-kix_qeukrmzdd 856-7{list-style-type:none}ol.lst-kix_qeukrmzdd856-6{list-style-type:none}ol.lst -kix_qeukrmzdd856-5{list-style-type:none}ol.lst-kix_qeukrmzdd856-4{list-style-ty pe:none}.lst-kix_2uog6ch44jpu-3>li:before{content:"" counter(lst-ctn-kix_2uog6ch 44jpu-3,decimal) ". "}.lst-kix_ffvvlgzbuz30-3>li:before{content:"\0025cf "}ol.l st-kix_qeukrmzdd856-3{list-style-type:none}ol.lst-kix_1c0w7icorqz1-8.start{count er-reset:lst-ctn-kix_1c0w7icorqz1-8 0}ol.lst-kix_m8zky1oy6k60-7.start{counter-re set:lst-ctn-kix_m8zky1oy6k60-7 0}.lst-kix_uq748w6pjv3r-7>li{counter-increment:ls t-ctn-kix_uq748w6pjv3r-7}.lst-kix_ggm78fckav5h-5>li{counter-increment:lst-ctn-ki x_ggm78fckav5h-5}.lst-kix_pza3ybm1wtg3-8>li:before{content:"" counter(lst-ctn-ki x_pza3ybm1wtg3-8,lower-roman) ". "}ol.lst-kix_ggm78fckav5h-5.start{counter-reset :lst-ctn-kix_ggm78fckav5h-5 0}ol.lst-kix_1gqf2s78t7o1-2.start{counter-reset:lst- ctn-kix_1gqf2s78t7o1-2 0}.lst-kix_z7in7d1ar2zt-0>li{counter-increment:lst-ctn-ki x_z7in7d1ar2zt-0}ol.lst-kix_pa6lflf2amnu-4.start{counter-reset:lst-ctn-kix_pa6lf lf2amnu-4 0}.lst-kix_z7in7d1ar2zt-5>li{counter-increment:lst-ctn-kix_z7in7d1ar2z t-5}ol.lst-kix_m8zky1oy6k60-5.start{counter-reset:lst-ctn-kix_m8zky1oy6k60-5 0}. lst-kix_57tjkabqizo2-5>li:before{content:"" counter(lst-ctn-kix_57tjkabqizo2-5,l ower-roman) ". "}.lst-kix_opzlp0rjj486-6>li{counter-increment:lst-ctn-kix_opzlp0 rjj486-6}.lst-kix_2uog6ch44jpu-7>li{counter-increment:lst-ctn-kix_2uog6ch44jpu-7 }.lst-kix_sgsi64vug03j-8>li{counter-increment:lst-ctn-kix_sgsi64vug03j-8}.lst-ki x_hm47sef7muk-3>li:before{content:"" counter(lst-ctn-kix_hm47sef7muk-3,decimal) ". "}.lst-kix_dblgil8t24zy-7>li{counter-increment:lst-ctn-kix_dblgil8t24zy-7}.ls t-kix_jxeur1wnlj7y-1>li:before{content:"" counter(lst-ctn-kix_jxeur1wnlj7y-1,low er-latin) ". "}.lst-kix_1gqf2s78t7o1-6>li:before{content:"" counter(lst-ctn-kix_ 1gqf2s78t7o1-6,decimal) ". "}ol.lst-kix_kf08e4mo0q15-1.start{counter-reset:lst-c tn-kix_kf08e4mo0q15-1 0}ol.lst-kix_wzk0mdv2qg9u-5.start{counter-reset:lst-ctn-ki x_wzk0mdv2qg9u-5 0}.lst-kix_p8a3u4ougab9-2>li{counter-increment:lst-ctn-kix_p8a3 u4ougab9-2}.lst-kix_fr6w5z45nvx0-2>li{counter-increment:lst-ctn-kix_fr6w5z45nvx0 -2}ol.lst-kix_1g0xzctl1vi-1.start{counter-reset:lst-ctn-kix_1g0xzctl1vi-1 0}.lst -kix_1g0xzctl1vi-4>li:before{content:"" counter(lst-ctn-kix_1g0xzctl1vi-4,lower- latin) ". "}.lst-kix_8dg0b92yw51r-8>li{counter-increment:lst-ctn-kix_8dg0b92yw51 r-8}.lst-kix_jxeur1wnlj7y-6>li:before{content:"" counter(lst-ctn-kix_jxeur1wnlj7 y-6,decimal) ". "}.lst-kix_7kmxmbi2lsws-8>li{counter-increment:lst-ctn-kix_7kmxm bi2lsws-8}.lst-kix_t9jkz28ln50j-6>li:before{content:"" counter(lst-ctn-kix_t9jkz 28ln50j-6,decimal) ". "}ol.lst-kix_jpf3cr7xe1pc-8{list-style-type:none}ol.lst-ki x_jpf3cr7xe1pc-7{list-style-type:none}ol.lst-kix_jpf3cr7xe1pc-6{list-style-type: none}ol.lst-kix_jpf3cr7xe1pc-5{list-style-type:none}ol.lst-kix_4s9m9sikrtm7-0.st art{counter-reset:lst-ctn-kix_4s9m9sikrtm7-0 0}.lst-kix_opzlp0rjj486-6>li:before {content:"" counter(lst-ctn-kix_opzlp0rjj486-6,decimal) ". "}.lst-kix_oqqzpe3b3n ud-0>li:before{content:"" counter(lst-ctn-kix_oqqzpe3b3nud-0,decimal) ". "}ol.ls t-kix_opzlp0rjj486-1.start{counter-reset:lst-ctn-kix_opzlp0rjj486-1 0}ol.lst-kix _ggm78fckav5h-7.start{counter-reset:lst-ctn-kix_ggm78fckav5h-7 0}.lst-kix_dblgil 8t24zy-0>li{counter-increment:lst-ctn-kix_dblgil8t24zy-0}.lst-kix_32zxnvl59py3-0 >li{counter-increment:lst-ctn-kix_32zxnvl59py3-0}.lst-kix_qz5wp1hdd24k-3>li{coun ter-increment:lst-ctn-kix_qz5wp1hdd24k-3}ol.lst-kix_8uscekru9dbw-3.start{counter -reset:lst-ctn-kix_8uscekru9dbw-3 0}.lst-kix_9tkaqbe3bnu3-2>li:before{content:"" counter(lst-ctn-kix_9tkaqbe3bnu3-2,lower-roman) ". "}ol.lst-kix_1g0xzctl1vi-4.s tart{counter-reset:lst-ctn-kix_1g0xzctl1vi-4 0}ol.lst-kix_hvjet9voiiio-0.start{c ounter-reset:lst-ctn-kix_hvjet9voiiio-0 0}ol.lst-kix_juntnht2kzza-1.start{counte r-reset:lst-ctn-kix_juntnht2kzza-1 0}.lst-kix_wzk0mdv2qg9u-6>li{counter-incremen t:lst-ctn-kix_wzk0mdv2qg9u-6}.lst-kix_1g0xzctl1vi-5>li:before{content:"" counter (lst-ctn-kix_1g0xzctl1vi-5,lower-roman) ". "}.lst-kix_kvgsl0s9rzo4-8>li:before{c ontent:"" counter(lst-ctn-kix_kvgsl0s9rzo4-8,lower-roman) ". "}ol.lst-kix_dblgil 8t24zy-7.start{counter-reset:lst-ctn-kix_dblgil8t24zy-7 0}.lst-kix_hvjet9voiiio- 1>li:before{content:"" counter(lst-ctn-kix_hvjet9voiiio-1,lower-latin) ". "}.lst -kix_32zxnvl59py3-8>li{counter-increment:lst-ctn-kix_32zxnvl59py3-8}ol.lst-kix_j pf3cr7xe1pc-0{list-style-type:none}ol.lst-kix_jpf3cr7xe1pc-1{list-style-type:non e}ol.lst-kix_jpf3cr7xe1pc-2{list-style-type:none}.lst-kix_8uscekru9dbw-3>li{coun ter-increment:lst-ctn-kix_8uscekru9dbw-3}.lst-kix_v454r7upbzuz-2>li:before{conte nt:"" counter(lst-ctn-kix_v454r7upbzuz-2,lower-roman) ". "}ol.lst-kix_jpf3cr7xe1 pc-3{list-style-type:none}ol.lst-kix_5f9palqqt4mm-6.start{counter-reset:lst-ctn- kix_5f9palqqt4mm-6 0}ol.lst-kix_jpf3cr7xe1pc-4{list-style-type:none}ol.lst-kix_j pf3cr7xe1pc-3.start{counter-reset:lst-ctn-kix_jpf3cr7xe1pc-3 0}.lst-kix_pyiocxf7 nngd-0>li:before{content:"" counter(lst-ctn-kix_pyiocxf7nngd-0,decimal) ". "}.ls t-kix_m1x0qzeeadaz-4>li{counter-increment:lst-ctn-kix_m1x0qzeeadaz-4}ol.lst-kix_ m1x0qzeeadaz-8.start{counter-reset:lst-ctn-kix_m1x0qzeeadaz-8 0}.lst-kix_kf08e4m o0q15-0>li:before{content:"" counter(lst-ctn-kix_kf08e4mo0q15-0,decimal) ". "}.l st-kix_9tkaqbe3bnu3-4>li:before{content:"" counter(lst-ctn-kix_9tkaqbe3bnu3-4,lo wer-latin) ". "}ol.lst-kix_v454r7upbzuz-0.start{counter-reset:lst-ctn-kix_v454r7 upbzuz-0 0}.lst-kix_4s9m9sikrtm7-6>li{counter-increment:lst-ctn-kix_4s9m9sikrtm7 -6}.lst-kix_nhaic9xr6pf-3>li:before{content:"" counter(lst-ctn-kix_nhaic9xr6pf-3 ,decimal) ". "}.lst-kix_z7in7d1ar2zt-1>li{counter-increment:lst-ctn-kix_z7in7d1a r2zt-1}.lst-kix_qz5wp1hdd24k-4>li:before{content:"" counter(lst-ctn-kix_qz5wp1hd d24k-4,lower-latin) ". "}.lst-kix_jzpgxqq6fzzf-8>li{counter-increment:lst-ctn-ki x_jzpgxqq6fzzf-8}.lst-kix_nhaic9xr6pf-7>li{counter-increment:lst-ctn-kix_nhaic9x r6pf-7}.lst-kix_oqqzpe3b3nud-8>li{counter-increment:lst-ctn-kix_oqqzpe3b3nud-8}. lst-kix_dblgil8t24zy-4>li:before{content:"" counter(lst-ctn-kix_dblgil8t24zy-4,l ower-latin) ". "}.lst-kix_lixznqbqiris-7>li:before{content:"" counter(lst-ctn-ki x_lixznqbqiris-7,lower-latin) ". "}ol.lst-kix_uq748w6pjv3r-5.start{counter-reset :lst-ctn-kix_uq748w6pjv3r-5 0}.lst-kix_oqqzpe3b3nud-3>li{counter-increment:lst-c tn-kix_oqqzpe3b3nud-3}.lst-kix_t7any4lo9hoq-1>li:before{content:"\0025cb "}.lst -kix_lixznqbqiris-5>li{counter-increment:lst-ctn-kix_lixznqbqiris-5}ol.lst-kix_p za3ybm1wtg3-2{list-style-type:none}ol.lst-kix_pza3ybm1wtg3-1{list-style-type:non e}ol.lst-kix_oqqzpe3b3nud-2.start{counter-reset:lst-ctn-kix_oqqzpe3b3nud-2 0}ol. lst-kix_pza3ybm1wtg3-4{list-style-type:none}ol.lst-kix_pza3ybm1wtg3-3{list-style -type:none}.lst-kix_hm47sef7muk-6>li:before{content:"" counter(lst-ctn-kix_hm47s ef7muk-6,decimal) ". "}ol.lst-kix_pza3ybm1wtg3-0{list-style-type:none}.lst-kix_5 f9palqqt4mm-2>li{counter-increment:lst-ctn-kix_5f9palqqt4mm-2}.lst-kix_8dg0b92yw 51r-3>li:before{content:"" counter(lst-ctn-kix_8dg0b92yw51r-3,decimal) ". "}.lst -kix_2uog6ch44jpu-6>li:before{content:"" counter(lst-ctn-kix_2uog6ch44jpu-6,deci mal) ". "}.lst-kix_lgtbofvz5zxd-6>li:before{content:"" counter(lst-ctn-kix_lgtbo fvz5zxd-6,decimal) ". "}ol.lst-kix_4s9m9sikrtm7-6.start{counter-reset:lst-ctn-ki x_4s9m9sikrtm7-6 0}.lst-kix_wzk0mdv2qg9u-2>li:before{content:"" counter(lst-ctn- kix_wzk0mdv2qg9u-2,lower-roman) ". "}ol.lst-kix_jxeur1wnlj7y-4.start{counter-res et:lst-ctn-kix_jxeur1wnlj7y-4 0}.lst-kix_lgtbofvz5zxd-5>li{counter-increment:lst -ctn-kix_lgtbofvz5zxd-5}.lst-kix_4s9m9sikrtm7-5>li{counter-increment:lst-ctn-kix _4s9m9sikrtm7-5}ol.lst-kix_pza3ybm1wtg3-5{list-style-type:none}ol.lst-kix_pza3yb m1wtg3-6{list-style-type:none}ol.lst-kix_pza3ybm1wtg3-7{list-style-type:none}ol. lst-kix_pza3ybm1wtg3-8{list-style-type:none}ol.lst-kix_j51xhhtple7c-0.start{coun ter-reset:lst-ctn-kix_j51xhhtple7c-0 0}.lst-kix_5f9palqqt4mm-8>li{counter-increm ent:lst-ctn-kix_5f9palqqt4mm-8}.lst-kix_hvjet9voiiio-5>li:before{content:"" coun ter(lst-ctn-kix_hvjet9voiiio-5,lower-roman) ". "}ol.lst-kix_2uog6ch44jpu-1.start {counter-reset:lst-ctn-kix_2uog6ch44jpu-1 0}ol.lst-kix_juntnht2kzza-8.start{coun ter-reset:lst-ctn-kix_juntnht2kzza-8 0}.lst-kix_60g29afx0lof-4>li{counter-increm ent:lst-ctn-kix_60g29afx0lof-4}ol.lst-kix_8uscekru9dbw-8.start{counter-reset:lst -ctn-kix_8uscekru9dbw-8 0}.lst-kix_nho7sy6cpfv0-6>li{counter-increment:lst-ctn-k ix_nho7sy6cpfv0-6}.lst-kix_pa6lflf2amnu-7>li:before{content:"" counter(lst-ctn-k ix_pa6lflf2amnu-7,lower-latin) ". "}ol.lst-kix_p8a3u4ougab9-1.start{counter-rese t:lst-ctn-kix_p8a3u4ougab9-1 0}ol.lst-kix_nho7sy6cpfv0-3.start{counter-reset:lst -ctn-kix_nho7sy6cpfv0-3 0}.lst-kix_iqyc5gy523tq-5>li:before{content:"\0025a0 "} .lst-kix_jxeur1wnlj7y-0>li{counter-increment:lst-ctn-kix_jxeur1wnlj7y-0}ol.lst-k ix_hm47sef7muk-4.start{counter-reset:lst-ctn-kix_hm47sef7muk-4 0}ol.lst-kix_pza3 ybm1wtg3-7.start{counter-reset:lst-ctn-kix_pza3ybm1wtg3-7 0}.lst-kix_dblgil8t24z y-5>li:before{content:"" counter(lst-ctn-kix_dblgil8t24zy-5,lower-roman) ". "}ol .lst-kix_pyiocxf7nngd-5.start{counter-reset:lst-ctn-kix_pyiocxf7nngd-5 0}ol.lst- kix_pa6lflf2amnu-1{list-style-type:none}ol.lst-kix_pa6lflf2amnu-2{list-style-typ e:none}ol.lst-kix_pa6lflf2amnu-0{list-style-type:none}.lst-kix_lixznqbqiris-0>li {counter-increment:lst-ctn-kix_lixznqbqiris-0}.lst-kix_iqyc5gy523tq-3>li:before{ content:"\0025cf "}ol.lst-kix_pa6lflf2amnu-5{list-style-type:none}.lst-kix_nho7 sy6cpfv0-4>li:before{content:"" counter(lst-ctn-kix_nho7sy6cpfv0-4,lower-latin) ". "}ol.lst-kix_pa6lflf2amnu-6{list-style-type:none}ol.lst-kix_pa6lflf2amnu-3{li st-style-type:none}.lst-kix_57tjkabqizo2-3>li:before{content:"" counter(lst-ctn- kix_57tjkabqizo2-3,decimal) ". "}ol.lst-kix_pa6lflf2amnu-4{list-style-type:none} ol.lst-kix_1gqf2s78t7o1-5.start{counter-reset:lst-ctn-kix_1gqf2s78t7o1-5 0}ol.ls t-kix_pa6lflf2amnu-7{list-style-type:none}ol.lst-kix_pa6lflf2amnu-8{list-style-t ype:none}.lst-kix_nho7sy6cpfv0-0>li{counter-increment:lst-ctn-kix_nho7sy6cpfv0-0 }.lst-kix_kc6aimw8pnra-1>li:before{content:"\0025cb "}.lst-kix_fr6w5z45nvx0-6>l i:before{content:"" counter(lst-ctn-kix_fr6w5z45nvx0-6,decimal) ". "}.lst-kix_py iocxf7nngd-6>li{counter-increment:lst-ctn-kix_pyiocxf7nngd-6}.lst-kix_kf08e4mo0q 15-7>li{counter-increment:lst-ctn-kix_kf08e4mo0q15-7}.lst-kix_jxeur1wnlj7y-5>li: before{content:"" counter(lst-ctn-kix_jxeur1wnlj7y-5,lower-roman) ". "}ol.lst-ki x_j51xhhtple7c-7.start{counter-reset:lst-ctn-kix_j51xhhtple7c-7 0}ol.lst-kix_m8z ky1oy6k60-8.start{counter-reset:lst-ctn-kix_m8zky1oy6k60-8 0}ol.lst-kix_juntnht2 kzza-3.start{counter-reset:lst-ctn-kix_juntnht2kzza-3 0}.lst-kix_iqyc5gy523tq-1> li:before{content:"\0025cb "}.lst-kix_4s9m9sikrtm7-4>li{counter-increment:lst-c tn-kix_4s9m9sikrtm7-4}ol.lst-kix_uq748w6pjv3r-3.start{counter-reset:lst-ctn-kix_ uq748w6pjv3r-3 0}.lst-kix_m1x0qzeeadaz-6>li:before{content:"" counter(lst-ctn-ki x_m1x0qzeeadaz-6,decimal) ". "}ol.lst-kix_kf08e4mo0q15-4.start{counter-reset:lst -ctn-kix_kf08e4mo0q15-4 0}.lst-kix_m1x0qzeeadaz-3>li:before{content:"" counter(l st-ctn-kix_m1x0qzeeadaz-3,decimal) ". "}.lst-kix_fpxsljpyl73u-6>li:before{conten t:"\0025cf "}.lst-kix_1gqf2s78t7o1-5>li:before{content:"" counter(lst-ctn-kix_1 gqf2s78t7o1-5,lower-roman) ". "}.lst-kix_32zxnvl59py3-4>li:before{content:"" cou nter(lst-ctn-kix_32zxnvl59py3-4,lower-latin) ". "}ol.lst-kix_32zxnvl59py3-7{list -style-type:none}ol.lst-kix_sgsi64vug03j-1.start{counter-reset:lst-ctn-kix_sgsi6 4vug03j-1 0}ol.lst-kix_32zxnvl59py3-6{list-style-type:none}ol.lst-kix_32zxnvl59p y3-5{list-style-type:none}ol.lst-kix_32zxnvl59py3-4{list-style-type:none}.lst-ki x_8dg0b92yw51r-6>li:before{content:"" counter(lst-ctn-kix_8dg0b92yw51r-6,decimal ) ". "}ol.lst-kix_32zxnvl59py3-3{list-style-type:none}.lst-kix_hvjet9voiiio-8>li :before{content:"" counter(lst-ctn-kix_hvjet9voiiio-8,lower-roman) ". "}ol.lst-k ix_32zxnvl59py3-2{list-style-type:none}ol.lst-kix_32zxnvl59py3-1{list-style-type :none}.lst-kix_pyiocxf7nngd-4>li{counter-increment:lst-ctn-kix_pyiocxf7nngd-4}ol .lst-kix_32zxnvl59py3-0{list-style-type:none}ol.lst-kix_lgtbofvz5zxd-3.start{cou nter-reset:lst-ctn-kix_lgtbofvz5zxd-3 0}.lst-kix_j51xhhtple7c-0>li:before{conten t:"" counter(lst-ctn-kix_j51xhhtple7c-0,decimal) ". "}.lst-kix_m8zky1oy6k60-5>li :before{content:"" counter(lst-ctn-kix_m8zky1oy6k60-5,lower-roman) ". "}.lst-kix _lgtbofvz5zxd-0>li{counter-increment:lst-ctn-kix_lgtbofvz5zxd-0}.lst-kix_j51xhht ple7c-2>li:before{content:"" counter(lst-ctn-kix_j51xhhtple7c-2,lower-roman) ". "}.lst-kix_pa6lflf2amnu-7>li{counter-increment:lst-ctn-kix_pa6lflf2amnu-7}.lst-k ix_8dg0b92yw51r-4>li:before{content:"" counter(lst-ctn-kix_8dg0b92yw51r-4,lower- latin) ". "}.lst-kix_jzpgxqq6fzzf-7>li:before{content:"" counter(lst-ctn-kix_jzp gxqq6fzzf-7,lower-latin) ". "}.lst-kix_hm47sef7muk-5>li{counter-increment:lst-ct n-kix_hm47sef7muk-5}ol.lst-kix_t9jkz28ln50j-7.start{counter-reset:lst-ctn-kix_t9 jkz28ln50j-7 0}.lst-kix_1gqf2s78t7o1-2>li:before{content:"" counter(lst-ctn-kix_ 1gqf2s78t7o1-2,lower-roman) ". "}ol.lst-kix_j51xhhtple7c-3.start{counter-reset:l st-ctn-kix_j51xhhtple7c-3 0}.lst-kix_z7in7d1ar2zt-5>li:before{content:"" counter (lst-ctn-kix_z7in7d1ar2zt-5,lower-roman) ". "}ol.lst-kix_nhaic9xr6pf-7.start{cou nter-reset:lst-ctn-kix_nhaic9xr6pf-7 0}.lst-kix_jpf3cr7xe1pc-4>li:before{content :"" counter(lst-ctn-kix_jpf3cr7xe1pc-4,lower-latin) ". "}.lst-kix_hm47sef7muk-4> li{counter-increment:lst-ctn-kix_hm47sef7muk-4}ol.lst-kix_8dg0b92yw51r-7.start{c ounter-reset:lst-ctn-kix_8dg0b92yw51r-7 0}.lst-kix_60g29afx0lof-1>li:before{cont ent:"" counter(lst-ctn-kix_60g29afx0lof-1,lower-latin) ". "}.lst-kix_lixznqbqiri s-5>li:before{content:"" counter(lst-ctn-kix_lixznqbqiris-5,lower-roman) ". "}.l st-kix_oqqzpe3b3nud-0>li{counter-increment:lst-ctn-kix_oqqzpe3b3nud-0}ol.lst-kix _t9jkz28ln50j-3.start{counter-reset:lst-ctn-kix_t9jkz28ln50j-3 0}ol.lst-kix_p8a3 u4ougab9-7.start{counter-reset:lst-ctn-kix_p8a3u4ougab9-7 0}ol.lst-kix_lgtbofvz5 zxd-7.start{counter-reset:lst-ctn-kix_lgtbofvz5zxd-7 0}.lst-kix_opzlp0rjj486-7>l i:before{content:"" counter(lst-ctn-kix_opzlp0rjj486-7,lower-latin) ". "}.lst-ki x_m8zky1oy6k60-4>li{counter-increment:lst-ctn-kix_m8zky1oy6k60-4}.lst-kix_57tjka bqizo2-2>li{counter-increment:lst-ctn-kix_57tjkabqizo2-2}.lst-kix_m1x0qzeeadaz-5 >li{counter-increment:lst-ctn-kix_m1x0qzeeadaz-5}.lst-kix_hm47sef7muk-0>li:befor e{content:"" counter(lst-ctn-kix_hm47sef7muk-0,decimal) ". "}.lst-kix_hm47sef7mu k-6>li{counter-increment:lst-ctn-kix_hm47sef7muk-6}ol.lst-kix_oqqzpe3b3nud-5.sta rt{counter-reset:lst-ctn-kix_oqqzpe3b3nud-5 0}ol.lst-kix_32zxnvl59py3-1.start{co unter-reset:lst-ctn-kix_32zxnvl59py3-1 0}ol.lst-kix_nho7sy6cpfv0-1{list-style-ty pe:none}ol.lst-kix_nho7sy6cpfv0-0{list-style-type:none}ol.lst-kix_kvgsl0s9rzo4-7 .start{counter-reset:lst-ctn-kix_kvgsl0s9rzo4-7 0}.lst-kix_57tjkabqizo2-8>li:bef ore{content:"" counter(lst-ctn-kix_57tjkabqizo2-8,lower-roman) ". "}.lst-kix_jun tnht2kzza-2>li:before{content:"" counter(lst-ctn-kix_juntnht2kzza-2,lower-roman) ". "}.lst-kix_pza3ybm1wtg3-7>li{counter-increment:lst-ctn-kix_pza3ybm1wtg3-7}.l st-kix_z7in7d1ar2zt-7>li{counter-increment:lst-ctn-kix_z7in7d1ar2zt-7}ol.lst-kix _5f9palqqt4mm-8{list-style-type:none}.lst-kix_wzk0mdv2qg9u-7>li:before{content:" " counter(lst-ctn-kix_wzk0mdv2qg9u-7,lower-latin) ". "}ol.lst-kix_t9jkz28ln50j-6 .start{counter-reset:lst-ctn-kix_t9jkz28ln50j-6 0}ol.lst-kix_jxeur1wnlj7y-0.star t{counter-reset:lst-ctn-kix_jxeur1wnlj7y-0 0}.lst-kix_4s9m9sikrtm7-4>li:before{c ontent:"" counter(lst-ctn-kix_4s9m9sikrtm7-4,lower-latin) ". "}.lst-kix_ggm78fck av5h-3>li:before{content:"" counter(lst-ctn-kix_ggm78fckav5h-3,decimal) ". "}ol. lst-kix_5f9palqqt4mm-5{list-style-type:none}ol.lst-kix_5f9palqqt4mm-4{list-style -type:none}ol.lst-kix_5f9palqqt4mm-7{list-style-type:none}ol.lst-kix_5f9palqqt4m m-6{list-style-type:none}.lst-kix_57tjkabqizo2-2>li:before{content:"" counter(ls t-ctn-kix_57tjkabqizo2-2,lower-roman) ". "}.lst-kix_pza3ybm1wtg3-1>li:before{con tent:"" counter(lst-ctn-kix_pza3ybm1wtg3-1,lower-latin) ". "}.lst-kix_2uog6ch44j pu-5>li:before{content:"" counter(lst-ctn-kix_2uog6ch44jpu-5,lower-roman) ". "}. lst-kix_8uscekru9dbw-8>li{counter-increment:lst-ctn-kix_8uscekru9dbw-8}.lst-kix_ 57tjkabqizo2-0>li{counter-increment:lst-ctn-kix_57tjkabqizo2-0}.lst-kix_dblgil8t 24zy-6>li:before{content:"" counter(lst-ctn-kix_dblgil8t24zy-6,decimal) ". "}ol. lst-kix_5f9palqqt4mm-0{list-style-type:none}ol.lst-kix_5f9palqqt4mm-1{list-style -type:none}ol.lst-kix_5f9palqqt4mm-2{list-style-type:none}ol.lst-kix_nhaic9xr6pf -0.start{counter-reset:lst-ctn-kix_nhaic9xr6pf-0 0}ol.lst-kix_5f9palqqt4mm-3{lis t-style-type:none}.lst-kix_vnvg10gwrc8t-3>li{counter-increment:lst-ctn-kix_vnvg1 0gwrc8t-3}.lst-kix_p8a3u4ougab9-8>li{counter-increment:lst-ctn-kix_p8a3u4ougab9- 8}.lst-kix_m8zky1oy6k60-5>li{counter-increment:lst-ctn-kix_m8zky1oy6k60-5}ol.lst -kix_z7in7d1ar2zt-1{list-style-type:none}ol.lst-kix_z7in7d1ar2zt-0{list-style-ty pe:none}ol.lst-kix_z7in7d1ar2zt-5{list-style-type:none}.lst-kix_qeukrmzdd856-5>l i:before{content:"" counter(lst-ctn-kix_qeukrmzdd856-5,lower-roman) ". "}.lst-ki x_1gqf2s78t7o1-0>li:before{content:"" counter(lst-ctn-kix_1gqf2s78t7o1-0,decimal ) ". "}ol.lst-kix_z7in7d1ar2zt-4{list-style-type:none}ol.lst-kix_z7in7d1ar2zt-3{ list-style-type:none}ol.lst-kix_z7in7d1ar2zt-2{list-style-type:none}ol.lst-kix_z 7in7d1ar2zt-8{list-style-type:none}ol.lst-kix_z7in7d1ar2zt-7{list-style-type:non e}ol.lst-kix_z7in7d1ar2zt-6{list-style-type:none}.lst-kix_m8zky1oy6k60-6>li:befo re{content:"" counter(lst-ctn-kix_m8zky1oy6k60-6,decimal) ". "}ol.lst-kix_60g29a fx0lof-8.start{counter-reset:lst-ctn-kix_60g29afx0lof-8 0}ol.lst-kix_lixznqbqiri s-2.start{counter-reset:lst-ctn-kix_lixznqbqiris-2 0}ol.lst-kix_57tjkabqizo2-5.s tart{counter-reset:lst-ctn-kix_57tjkabqizo2-5 0}.lst-kix_3h1iswqv3l7s-0>li{count er-increment:lst-ctn-kix_3h1iswqv3l7s-0}ol.lst-kix_2uog6ch44jpu-8.start{counter- reset:lst-ctn-kix_2uog6ch44jpu-8 0}.lst-kix_fr6w5z45nvx0-0>li{counter-increment: lst-ctn-kix_fr6w5z45nvx0-0}.lst-kix_p8a3u4ougab9-6>li:before{content:"" counter( lst-ctn-kix_p8a3u4ougab9-6,decimal) ". "}.lst-kix_vnvg10gwrc8t-7>li{counter-incr ement:lst-ctn-kix_vnvg10gwrc8t-7}.lst-kix_v454r7upbzuz-5>li{counter-increment:ls t-ctn-kix_v454r7upbzuz-5}.lst-kix_juntnht2kzza-5>li{counter-increment:lst-ctn-ki x_juntnht2kzza-5}ol.lst-kix_oqqzpe3b3nud-6.start{counter-reset:lst-ctn-kix_oqqzp e3b3nud-6 0}.lst-kix_vnvg10gwrc8t-5>li:before{content:"" counter(lst-ctn-kix_vnv g10gwrc8t-5,lower-roman) ". "}.lst-kix_wzk0mdv2qg9u-8>li:before{content:"" count er(lst-ctn-kix_wzk0mdv2qg9u-8,lower-roman) ". "}.lst-kix_q1b5wk7cmirb-1>li:befor e{content:"\0025cb "}.lst-kix_i2v077rod1nx-3>li:before{content:"\0025cf "}ol.l st-kix_3h1iswqv3l7s-4.start{counter-reset:lst-ctn-kix_3h1iswqv3l7s-4 0}.lst-kix_ v454r7upbzuz-1>li:before{content:"" counter(lst-ctn-kix_v454r7upbzuz-1,lower-lat in) ". "}.lst-kix_60g29afx0lof-7>li:before{content:"" counter(lst-ctn-kix_60g29a fx0lof-7,lower-latin) ". "}ol.lst-kix_nho7sy6cpfv0-6{list-style-type:none}ol.lst -kix_nho7sy6cpfv0-7{list-style-type:none}ol.lst-kix_nho7sy6cpfv0-8{list-style-ty pe:none}ol.lst-kix_nho7sy6cpfv0-2{list-style-type:none}.lst-kix_57tjkabqizo2-1>l i{counter-increment:lst-ctn-kix_57tjkabqizo2-1}ol.lst-kix_nho7sy6cpfv0-3{list-st yle-type:none}ol.lst-kix_nho7sy6cpfv0-4{list-style-type:none}ol.lst-kix_nho7sy6c pfv0-5{list-style-type:none}.lst-kix_uq748w6pjv3r-5>li{counter-increment:lst-ctn -kix_uq748w6pjv3r-5}.lst-kix_opzlp0rjj486-2>li:before{content:"" counter(lst-ctn -kix_opzlp0rjj486-2,lower-roman) ". "}.lst-kix_1c0w7icorqz1-8>li{counter-increme nt:lst-ctn-kix_1c0w7icorqz1-8}.lst-kix_iqyc5gy523tq-4>li:before{content:"\0025cb "}.lst-kix_1g0xzctl1vi-3>li:before{content:"" counter(lst-ctn-kix_1g0xzctl1vi- 3,decimal) ". "}.lst-kix_oqqzpe3b3nud-4>li:before{content:"" counter(lst-ctn-kix _oqqzpe3b3nud-4,lower-latin) ". "}.lst-kix_dblgil8t24zy-5>li{counter-increment:l st-ctn-kix_dblgil8t24zy-5}ol.lst-kix_kf08e4mo0q15-5.start{counter-reset:lst-ctn- kix_kf08e4mo0q15-5 0}.lst-kix_pa6lflf2amnu-0>li:before{content:"" counter(lst-ct n-kix_pa6lflf2amnu-0,decimal) ". "}ol.lst-kix_qz5wp1hdd24k-8.start{counter-reset :lst-ctn-kix_qz5wp1hdd24k-8 0}.lst-kix_3h1iswqv3l7s-3>li{counter-increment:lst-c tn-kix_3h1iswqv3l7s-3}.lst-kix_qz5wp1hdd24k-2>li{counter-increment:lst-ctn-kix_q z5wp1hdd24k-2}.lst-kix_1g0xzctl1vi-8>li:before{content:"" counter(lst-ctn-kix_1g 0xzctl1vi-8,lower-roman) ". "}.lst-kix_q1b5wk7cmirb-7>li:before{content:"\0025cb "}.lst-kix_fr6w5z45nvx0-8>li:before{content:"" counter(lst-ctn-kix_fr6w5z45nvx 0-8,lower-roman) ". "}.lst-kix_sgsi64vug03j-6>li{counter-increment:lst-ctn-kix_s gsi64vug03j-6}.lst-kix_8uscekru9dbw-0>li:before{content:"" counter(lst-ctn-kix_8 uscekru9dbw-0,decimal) ". "}.lst-kix_lixznqbqiris-1>li:before{content:"" counter (lst-ctn-kix_lixznqbqiris-1,lower-latin) ". "}.lst-kix_nhaic9xr6pf-3>li{counter- increment:lst-ctn-kix_nhaic9xr6pf-3}.lst-kix_fr6w5z45nvx0-4>li{counter-increment :lst-ctn-kix_fr6w5z45nvx0-4}.lst-kix_lgtbofvz5zxd-0>li:before{content:"" counter (lst-ctn-kix_lgtbofvz5zxd-0,decimal) ". "}ol.lst-kix_4s9m9sikrtm7-2.start{counte r-reset:lst-ctn-kix_4s9m9sikrtm7-2 0}ol.lst-kix_lgtbofvz5zxd-8.start{counter-res et:lst-ctn-kix_lgtbofvz5zxd-8 0}.lst-kix_oqqzpe3b3nud-5>li{counter-increment:lst -ctn-kix_oqqzpe3b3nud-5}.lst-kix_1gqf2s78t7o1-5>li{counter-increment:lst-ctn-kix _1gqf2s78t7o1-5}ol.lst-kix_p8a3u4ougab9-8{list-style-type:none}.lst-kix_bnpbicbh bbru-2>li:before{content:"\0025a0 "}ol.lst-kix_p8a3u4ougab9-7{list-style-type:n one}ol.lst-kix_1c0w7icorqz1-0.start{counter-reset:lst-ctn-kix_1c0w7icorqz1-0 0}o l.lst-kix_4s9m9sikrtm7-3.start{counter-reset:lst-ctn-kix_4s9m9sikrtm7-3 0}ol.lst -kix_p8a3u4ougab9-1{list-style-type:none}ol.lst-kix_p8a3u4ougab9-2{list-style-ty pe:none}ol.lst-kix_p8a3u4ougab9-0{list-style-type:none}ol.lst-kix_jpf3cr7xe1pc-4 .start{counter-reset:lst-ctn-kix_jpf3cr7xe1pc-4 0}ol.lst-kix_p8a3u4ougab9-5{list -style-type:none}ol.lst-kix_p8a3u4ougab9-6{list-style-type:none}ol.lst-kix_p8a3u 4ougab9-3{list-style-type:none}ol.lst-kix_p8a3u4ougab9-4{list-style-type:none}.l st-kix_t9jkz28ln50j-3>li{counter-increment:lst-ctn-kix_t9jkz28ln50j-3}ol.lst-kix _kvgsl0s9rzo4-3.start{counter-reset:lst-ctn-kix_kvgsl0s9rzo4-3 0}.lst-kix_9tkaqb e3bnu3-8>li{counter-increment:lst-ctn-kix_9tkaqbe3bnu3-8}.lst-kix_jzpgxqq6fzzf-5 >li:before{content:"" counter(lst-ctn-kix_jzpgxqq6fzzf-5,lower-roman) ". "}.lst- kix_qz5wp1hdd24k-5>li{counter-increment:lst-ctn-kix_qz5wp1hdd24k-5}.lst-kix_sgsi 64vug03j-2>li:before{content:"" counter(lst-ctn-kix_sgsi64vug03j-2,lower-roman) ". "}.lst-kix_1gqf2s78t7o1-0>li{counter-increment:lst-ctn-kix_1gqf2s78t7o1-0}.ls t-kix_vnvg10gwrc8t-0>li:before{content:"" counter(lst-ctn-kix_vnvg10gwrc8t-0,dec imal) ". "}.lst-kix_qeukrmzdd856-7>li:before{content:"" counter(lst-ctn-kix_qeuk rmzdd856-7,lower-latin) ". "}.lst-kix_kc6aimw8pnra-7>li:before{content:"\0025cb "}.lst-kix_opzlp0rjj486-5>li:before{content:"" counter(lst-ctn-kix_opzlp0rjj486 -5,lower-roman) ". "}ol.lst-kix_nhaic9xr6pf-8.start{counter-reset:lst-ctn-kix_nh aic9xr6pf-8 0}.lst-kix_vvzditg8sno-4>li:before{content:"\0025cb "}ol.lst-kix_nh aic9xr6pf-2.start{counter-reset:lst-ctn-kix_nhaic9xr6pf-2 0}ol.lst-kix_4s9m9sikr tm7-4.start{counter-reset:lst-ctn-kix_4s9m9sikrtm7-4 0}ol.lst-kix_1gqf2s78t7o1-7 {list-style-type:none}ol.lst-kix_1gqf2s78t7o1-8{list-style-type:none}ol.lst-kix_ 1gqf2s78t7o1-5{list-style-type:none}ol.lst-kix_1gqf2s78t7o1-6{list-style-type:no ne}.lst-kix_kvgsl0s9rzo4-4>li:before{content:"" counter(lst-ctn-kix_kvgsl0s9rzo4 -4,lower-latin) ". "}.lst-kix_wzk0mdv2qg9u-2>li{counter-increment:lst-ctn-kix_wz k0mdv2qg9u-2}.lst-kix_juntnht2kzza-3>li:before{content:"" counter(lst-ctn-kix_ju ntnht2kzza-3,decimal) ". "}.lst-kix_8dg0b92yw51r-3>li{counter-increment:lst-ctn- kix_8dg0b92yw51r-3}.lst-kix_fpxsljpyl73u-4>li:before{content:"\0025cb "}ol.lst- kix_1gqf2s78t7o1-0{list-style-type:none}.lst-kix_kvgsl0s9rzo4-7>li:before{conten t:"" counter(lst-ctn-kix_kvgsl0s9rzo4-7,lower-latin) ". "}ol.lst-kix_1gqf2s78t7o 1-4{list-style-type:none}.lst-kix_kc6aimw8pnra-8>li:before{content:"\0025a0 "}o l.lst-kix_1gqf2s78t7o1-3{list-style-type:none}ol.lst-kix_1gqf2s78t7o1-2{list-sty le-type:none}ol.lst-kix_1gqf2s78t7o1-1{list-style-type:none}.lst-kix_1c0w7icorqz 1-6>li:before{content:"" counter(lst-ctn-kix_1c0w7icorqz1-6,decimal) ". "}.lst-k ix_60g29afx0lof-1>li{counter-increment:lst-ctn-kix_60g29afx0lof-1}.lst-kix_sgsi6 4vug03j-1>li{counter-increment:lst-ctn-kix_sgsi64vug03j-1}.lst-kix_60g29afx0lof- 8>li{counter-increment:lst-ctn-kix_60g29afx0lof-8}ol.lst-kix_lixznqbqiris-3.star t{counter-reset:lst-ctn-kix_lixznqbqiris-3 0}.lst-kix_opzlp0rjj486-3>li{counter- increment:lst-ctn-kix_opzlp0rjj486-3}.lst-kix_iqyc5gy523tq-0>li:before{content:" \0025cf "}ol.lst-kix_p8a3u4ougab9-5.start{counter-reset:lst-ctn-kix_p8a3u4ougab 9-5 0}.lst-kix_kvgsl0s9rzo4-6>li{counter-increment:lst-ctn-kix_kvgsl0s9rzo4-6}ol .lst-kix_opzlp0rjj486-0.start{counter-reset:lst-ctn-kix_opzlp0rjj486-0 0}.lst-ki x_pza3ybm1wtg3-7>li:before{content:"" counter(lst-ctn-kix_pza3ybm1wtg3-7,lower-l atin) ". "}.lst-kix_opzlp0rjj486-0>li:before{content:"" counter(lst-ctn-kix_opzl p0rjj486-0,decimal) ". "}.lst-kix_p8a3u4ougab9-8>li:before{content:"" counter(ls t-ctn-kix_p8a3u4ougab9-8,lower-roman) ". "}ol.lst-kix_pza3ybm1wtg3-2.start{count er-reset:lst-ctn-kix_pza3ybm1wtg3-2 0}.lst-kix_dblgil8t24zy-8>li:before{content: "" counter(lst-ctn-kix_dblgil8t24zy-8,lower-roman) ". "}ol.lst-kix_32zxnvl59py3- 0.start{counter-reset:lst-ctn-kix_32zxnvl59py3-0 0}.lst-kix_t9jkz28ln50j-7>li{co unter-increment:lst-ctn-kix_t9jkz28ln50j-7}.lst-kix_z7in7d1ar2zt-8>li{counter-in crement:lst-ctn-kix_z7in7d1ar2zt-8}.lst-kix_3h1iswqv3l7s-4>li{counter-increment: lst-ctn-kix_3h1iswqv3l7s-4}.lst-kix_bnpbicbhbbru-7>li:before{content:"\0025cb " }.lst-kix_uq748w6pjv3r-4>li{counter-increment:lst-ctn-kix_uq748w6pjv3r-4}.lst-ki x_qz5wp1hdd24k-1>li:before{content:"" counter(lst-ctn-kix_qz5wp1hdd24k-1,lower-l atin) ". "}ol.lst-kix_hm47sef7muk-2.start{counter-reset:lst-ctn-kix_hm47sef7muk- 2 0}.lst-kix_jpf3cr7xe1pc-3>li{counter-increment:lst-ctn-kix_jpf3cr7xe1pc-3}.lst -kix_oqqzpe3b3nud-4>li{counter-increment:lst-ctn-kix_oqqzpe3b3nud-4}ol.lst-kix_l gtbofvz5zxd-1.start{counter-reset:lst-ctn-kix_lgtbofvz5zxd-1 0}ol.lst-kix_9tkaqb e3bnu3-5.start{counter-reset:lst-ctn-kix_9tkaqbe3bnu3-5 0}.lst-kix_vnvg10gwrc8t- 0>li{counter-increment:lst-ctn-kix_vnvg10gwrc8t-0}ol.lst-kix_32zxnvl59py3-8{list -style-type:none}.lst-kix_lgtbofvz5zxd-8>li{counter-increment:lst-ctn-kix_lgtbof vz5zxd-8}.lst-kix_m8zky1oy6k60-2>li:before{content:"" counter(lst-ctn-kix_m8zky1 oy6k60-2,lower-roman) ". "}ol.lst-kix_jxeur1wnlj7y-7{list-style-type:none}ol.lst -kix_jxeur1wnlj7y-8{list-style-type:none}ol.lst-kix_jxeur1wnlj7y-3{list-style-ty pe:none}ol.lst-kix_jxeur1wnlj7y-4{list-style-type:none}ol.lst-kix_jxeur1wnlj7y-5 {list-style-type:none}ol.lst-kix_jxeur1wnlj7y-6{list-style-type:none}.lst-kix_fr 6w5z45nvx0-7>li{counter-increment:lst-ctn-kix_fr6w5z45nvx0-7}.lst-kix_qeukrmzdd8 56-3>li{counter-increment:lst-ctn-kix_qeukrmzdd856-3}ol.lst-kix_kf08e4mo0q15-7.s tart{counter-reset:lst-ctn-kix_kf08e4mo0q15-7 0}.lst-kix_vnvg10gwrc8t-4>li{count er-increment:lst-ctn-kix_vnvg10gwrc8t-4}ol.lst-kix_jxeur1wnlj7y-0{list-style-typ e:none}.lst-kix_jzpgxqq6fzzf-1>li{counter-increment:lst-ctn-kix_jzpgxqq6fzzf-1}o l.lst-kix_jxeur1wnlj7y-2{list-style-type:none}.lst-kix_jzpgxqq6fzzf-4>li:before{ content:"" counter(lst-ctn-kix_jzpgxqq6fzzf-4,lower-latin) ". "}ol.lst-kix_jxeur 1wnlj7y-1{list-style-type:none}.lst-kix_8dg0b92yw51r-8>li:before{content:"" coun ter(lst-ctn-kix_8dg0b92yw51r-8,lower-roman) ". "}.lst-kix_opzlp0rjj486-8>li{coun ter-increment:lst-ctn-kix_opzlp0rjj486-8}.lst-kix_m8zky1oy6k60-2>li{counter-incr ement:lst-ctn-kix_m8zky1oy6k60-2}ol.lst-kix_8dg0b92yw51r-5{list-style-type:none} ol.lst-kix_8dg0b92yw51r-6{list-style-type:none}ol.lst-kix_8dg0b92yw51r-7{list-st yle-type:none}ol.lst-kix_opzlp0rjj486-7.start{counter-reset:lst-ctn-kix_opzlp0rj j486-7 0}ol.lst-kix_8dg0b92yw51r-8{list-style-type:none}.lst-kix_oqqzpe3b3nud-6> li{counter-increment:lst-ctn-kix_oqqzpe3b3nud-6}ol.lst-kix_4s9m9sikrtm7-6{list-s tyle-type:none}ol.lst-kix_4s9m9sikrtm7-7{list-style-type:none}ol.lst-kix_4s9m9si krtm7-4{list-style-type:none}ol.lst-kix_4s9m9sikrtm7-5{list-style-type:none}ol.l st-kix_4s9m9sikrtm7-8{list-style-type:none}.lst-kix_qeukrmzdd856-2>li{counter-in crement:lst-ctn-kix_qeukrmzdd856-2}ol.lst-kix_8dg0b92yw51r-2{list-style-type:non e}ol.lst-kix_8dg0b92yw51r-1{list-style-type:none}ol.lst-kix_8dg0b92yw51r-4{list- style-type:none}ol.lst-kix_8dg0b92yw51r-3{list-style-type:none}ol.lst-kix_4s9m9s ikrtm7-2{list-style-type:none}ol.lst-kix_4s9m9sikrtm7-3{list-style-type:none}ol. lst-kix_8dg0b92yw51r-0{list-style-type:none}ol.lst-kix_4s9m9sikrtm7-0{list-style -type:none}ol.lst-kix_8uscekru9dbw-6.start{counter-reset:lst-ctn-kix_8uscekru9db w-6 0}ol.lst-kix_4s9m9sikrtm7-1{list-style-type:none}.lst-kix_1gqf2s78t7o1-4>li{ counter-increment:lst-ctn-kix_1gqf2s78t7o1-4}.lst-kix_jzpgxqq6fzzf-2>li{counter- increment:lst-ctn-kix_jzpgxqq6fzzf-2}ol.lst-kix_kvgsl0s9rzo4-1.start{counter-res et:lst-ctn-kix_kvgsl0s9rzo4-1 0}.lst-kix_uq748w6pjv3r-8>li:before{content:"" cou nter(lst-ctn-kix_uq748w6pjv3r-8,lower-roman) ". "}.lst-kix_ggm78fckav5h-1>li:bef ore{content:"" counter(lst-ctn-kix_ggm78fckav5h-1,lower-latin) ". "}.lst-kix_dbl gil8t24zy-6>li{counter-increment:lst-ctn-kix_dblgil8t24zy-6}ol.lst-kix_hvjet9voi iio-4.start{counter-reset:lst-ctn-kix_hvjet9voiiio-4 0}.lst-kix_nho7sy6cpfv0-3>l i:before{content:"" counter(lst-ctn-kix_nho7sy6cpfv0-3,decimal) ". "}.lst-kix_lg tbofvz5zxd-7>li{counter-increment:lst-ctn-kix_lgtbofvz5zxd-7}.lst-kix_uq748w6pjv 3r-7>li:before{content:"" counter(lst-ctn-kix_uq748w6pjv3r-7,lower-latin) ". "}o l.lst-kix_jzpgxqq6fzzf-3.start{counter-reset:lst-ctn-kix_jzpgxqq6fzzf-3 0}ol.lst -kix_qeukrmzdd856-4.start{counter-reset:lst-ctn-kix_qeukrmzdd856-4 0}.lst-kix_p8 a3u4ougab9-7>li:before{content:"" counter(lst-ctn-kix_p8a3u4ougab9-7,lower-latin ) ". "}ol.lst-kix_pa6lflf2amnu-8.start{counter-reset:lst-ctn-kix_pa6lflf2amnu-8 0}.lst-kix_32zxnvl59py3-5>li:before{content:"" counter(lst-ctn-kix_32zxnvl59py3- 5,lower-roman) ". "}.lst-kix_jpf3cr7xe1pc-7>li:before{content:"" counter(lst-ctn -kix_jpf3cr7xe1pc-7,lower-latin) ". "}.lst-kix_1c0w7icorqz1-2>li{counter-increme nt:lst-ctn-kix_1c0w7icorqz1-2}.lst-kix_nhaic9xr6pf-5>li{counter-increment:lst-ct n-kix_nhaic9xr6pf-5}.lst-kix_qeukrmzdd856-0>li{counter-increment:lst-ctn-kix_qeu krmzdd856-0}.lst-kix_t7any4lo9hoq-5>li:before{content:"\0025a0 "}ol.lst-kix_z7i n7d1ar2zt-5.start{counter-reset:lst-ctn-kix_z7in7d1ar2zt-5 0}.lst-kix_5f9palqqt4 mm-4>li{counter-increment:lst-ctn-kix_5f9palqqt4mm-4}ol.lst-kix_57tjkabqizo2-3.s tart{counter-reset:lst-ctn-kix_57tjkabqizo2-3 0}ol.lst-kix_oqqzpe3b3nud-4.start{ counter-reset:lst-ctn-kix_oqqzpe3b3nud-4 0}.lst-kix_9tkaqbe3bnu3-8>li:before{con tent:"" counter(lst-ctn-kix_9tkaqbe3bnu3-8,lower-roman) ". "}ol.lst-kix_vnvg10gw rc8t-3{list-style-type:none}.lst-kix_qz5wp1hdd24k-1>li{counter-increment:lst-ctn -kix_qz5wp1hdd24k-1}ol.lst-kix_vnvg10gwrc8t-2{list-style-type:none}ol.lst-kix_vn vg10gwrc8t-5{list-style-type:none}ol.lst-kix_vnvg10gwrc8t-4{list-style-type:none }ol.lst-kix_vnvg10gwrc8t-7{list-style-type:none}ol.lst-kix_vnvg10gwrc8t-6{list-s tyle-type:none}ol.lst-kix_vnvg10gwrc8t-8{list-style-type:none}.lst-kix_jpf3cr7xe 1pc-1>li:before{content:"" counter(lst-ctn-kix_jpf3cr7xe1pc-1,lower-latin) ". "} ol.lst-kix_kf08e4mo0q15-0.start{counter-reset:lst-ctn-kix_kf08e4mo0q15-0 0}.lst- kix_fpxsljpyl73u-5>li:before{content:"\0025a0 "}ol.lst-kix_1g0xzctl1vi-5{list-s tyle-type:none}ol.lst-kix_ggm78fckav5h-1{list-style-type:none}ol.lst-kix_1g0xzct l1vi-4{list-style-type:none}ol.lst-kix_ggm78fckav5h-2{list-style-type:none}ol.ls t-kix_1g0xzctl1vi-3{list-style-type:none}.lst-kix_hvjet9voiiio-4>li{counter-incr ement:lst-ctn-kix_hvjet9voiiio-4}ol.lst-kix_1g0xzctl1vi-2{list-style-type:none}o l.lst-kix_ggm78fckav5h-0{list-style-type:none}ol.lst-kix_1g0xzctl1vi-1{list-styl e-type:none}ol.lst-kix_ggm78fckav5h-5{list-style-type:none}ol.lst-kix_ggm78fckav 5h-6{list-style-type:none}ol.lst-kix_1g0xzctl1vi-0{list-style-type:none}ol.lst-k ix_ggm78fckav5h-3{list-style-type:none}ol.lst-kix_ggm78fckav5h-4{list-style-type :none}.lst-kix_pa6lflf2amnu-1>li:before{content:"" counter(lst-ctn-kix_pa6lflf2a mnu-1,lower-latin) ". "}ol.lst-kix_ggm78fckav5h-7{list-style-type:none}ol.lst-ki x_ggm78fckav5h-8{list-style-type:none}ol.lst-kix_1g0xzctl1vi-8{list-style-type:n one}.lst-kix_t9jkz28ln50j-4>li:before{content:"" counter(lst-ctn-kix_t9jkz28ln50 j-4,lower-latin) ". "}ol.lst-kix_1g0xzctl1vi-7{list-style-type:none}ol.lst-kix_1 g0xzctl1vi-6{list-style-type:none}.lst-kix_nho7sy6cpfv0-3>li{counter-increment:l st-ctn-kix_nho7sy6cpfv0-3}ol.lst-kix_vnvg10gwrc8t-0.start{counter-reset:lst-ctn- kix_vnvg10gwrc8t-0 0}ol.lst-kix_nho7sy6cpfv0-4.start{counter-reset:lst-ctn-kix_n ho7sy6cpfv0-4 0}.lst-kix_vnvg10gwrc8t-1>li:before{content:"" counter(lst-ctn-kix _vnvg10gwrc8t-1,lower-latin) ". "}ol.lst-kix_juntnht2kzza-2.start{counter-reset: lst-ctn-kix_juntnht2kzza-2 0}.lst-kix_v454r7upbzuz-6>li{counter-increment:lst-ct n-kix_v454r7upbzuz-6}ul.lst-kix_vvzditg8sno-6{list-style-type:none}.lst-kix_i2v0 77rod1nx-6>li:before{content:"\0025cf "}ul.lst-kix_vvzditg8sno-5{list-style-typ e:none}ul.lst-kix_vvzditg8sno-4{list-style-type:none}ul.lst-kix_vvzditg8sno-3{li st-style-type:none}ul.lst-kix_vvzditg8sno-8{list-style-type:none}ul.lst-kix_vvzd itg8sno-7{list-style-type:none}.lst-kix_wzk0mdv2qg9u-3>li:before{content:"" coun ter(lst-ctn-kix_wzk0mdv2qg9u-3,decimal) ". "}ul.lst-kix_vvzditg8sno-2{list-style -type:none}ul.lst-kix_vvzditg8sno-1{list-style-type:none}.lst-kix_2uog6ch44jpu-0 >li:before{content:"" counter(lst-ctn-kix_2uog6ch44jpu-0,decimal) ". "}ul.lst-ki x_vvzditg8sno-0{list-style-type:none}ol.lst-kix_60g29afx0lof-6.start{counter-res et:lst-ctn-kix_60g29afx0lof-6 0}.lst-kix_v454r7upbzuz-2>li{counter-increment:lst -ctn-kix_v454r7upbzuz-2}.lst-kix_lgtbofvz5zxd-3>li:before{content:"" counter(lst -ctn-kix_lgtbofvz5zxd-3,decimal) ". "}.lst-kix_1g0xzctl1vi-8>li{counter-incremen t:lst-ctn-kix_1g0xzctl1vi-8}ol.lst-kix_5f9palqqt4mm-2.start{counter-reset:lst-ct n-kix_5f9palqqt4mm-2 0}ol.lst-kix_lixznqbqiris-6.start{counter-reset:lst-ctn-kix _lixznqbqiris-6 0}.lst-kix_pyiocxf7nngd-2>li{counter-increment:lst-ctn-kix_pyioc xf7nngd-2}.lst-kix_m1x0qzeeadaz-1>li{counter-increment:lst-ctn-kix_m1x0qzeeadaz- 1}.lst-kix_hm47sef7muk-7>li{counter-increment:lst-ctn-kix_hm47sef7muk-7}ol.lst-k ix_nho7sy6cpfv0-2.start{counter-reset:lst-ctn-kix_nho7sy6cpfv0-2 0}ol.lst-kix_57 tjkabqizo2-4.start{counter-reset:lst-ctn-kix_57tjkabqizo2-4 0}.lst-kix_lixznqbqi ris-8>li:before{content:"" counter(lst-ctn-kix_lixznqbqiris-8,lower-roman) ". "} .lst-kix_j51xhhtple7c-2>li{counter-increment:lst-ctn-kix_j51xhhtple7c-2}ol.lst-k ix_5f9palqqt4mm-5.start{counter-reset:lst-ctn-kix_5f9palqqt4mm-5 0}ol.lst-kix_jp f3cr7xe1pc-5.start{counter-reset:lst-ctn-kix_jpf3cr7xe1pc-5 0}.lst-kix_ggm78fcka v5h-0>li:before{content:"" counter(lst-ctn-kix_ggm78fckav5h-0,decimal) ". "}ol.l st-kix_z7in7d1ar2zt-6.start{counter-reset:lst-ctn-kix_z7in7d1ar2zt-6 0}.lst-kix_ 5f9palqqt4mm-3>li:before{content:"" counter(lst-ctn-kix_5f9palqqt4mm-3,decimal) ". "}.lst-kix_9tkaqbe3bnu3-0>li{counter-increment:lst-ctn-kix_9tkaqbe3bnu3-0}.ls t-kix_oqqzpe3b3nud-1>li:before{content:"" counter(lst-ctn-kix_oqqzpe3b3nud-1,low er-latin) ". "}.lst-kix_pyiocxf7nngd-5>li{counter-increment:lst-ctn-kix_pyiocxf7 nngd-5}.lst-kix_fpxsljpyl73u-0>li:before{content:"\0025cf "}.lst-kix_m8zky1oy6k 60-7>li:before{content:"" counter(lst-ctn-kix_m8zky1oy6k60-7,lower-latin) ". "}. lst-kix_32zxnvl59py3-4>li{counter-increment:lst-ctn-kix_32zxnvl59py3-4}.lst-kix_ wzk0mdv2qg9u-8>li{counter-increment:lst-ctn-kix_wzk0mdv2qg9u-8}.lst-kix_kvgsl0s9 rzo4-0>li:before{content:"" counter(lst-ctn-kix_kvgsl0s9rzo4-0,decimal) ". "}.ls t-kix_fr6w5z45nvx0-3>li:before{content:"" counter(lst-ctn-kix_fr6w5z45nvx0-3,dec imal) ". "}ol.lst-kix_nho7sy6cpfv0-7.start{counter-reset:lst-ctn-kix_nho7sy6cpfv 0-7 0}ol.lst-kix_fr6w5z45nvx0-6.start{counter-reset:lst-ctn-kix_fr6w5z45nvx0-6 0 }ol.lst-kix_pza3ybm1wtg3-0.start{counter-reset:lst-ctn-kix_pza3ybm1wtg3-0 0}.lst -kix_fr6w5z45nvx0-1>li{counter-increment:lst-ctn-kix_fr6w5z45nvx0-1}.lst-kix_1gq f2s78t7o1-2>li{counter-increment:lst-ctn-kix_1gqf2s78t7o1-2}.lst-kix_57tjkabqizo 2-6>li:before{content:"" counter(lst-ctn-kix_57tjkabqizo2-6,decimal) ". "}ol.lst -kix_9tkaqbe3bnu3-1.start{counter-reset:lst-ctn-kix_9tkaqbe3bnu3-1 0}.lst-kix_m8 zky1oy6k60-3>li:before{content:"" counter(lst-ctn-kix_m8zky1oy6k60-3,decimal) ". "}.lst-kix_qz5wp1hdd24k-6>li:before{content:"" counter(lst-ctn-kix_qz5wp1hdd24k -6,decimal) ". "}ol.lst-kix_m1x0qzeeadaz-7.start{counter-reset:lst-ctn-kix_m1x0q zeeadaz-7 0}.lst-kix_ggm78fckav5h-4>li{counter-increment:lst-ctn-kix_ggm78fckav5 h-4}ol.lst-kix_qz5wp1hdd24k-7.start{counter-reset:lst-ctn-kix_qz5wp1hdd24k-7 0}o l.lst-kix_kvgsl0s9rzo4-0{list-style-type:none}.lst-kix_4s9m9sikrtm7-2>li:before{ content:"" counter(lst-ctn-kix_4s9m9sikrtm7-2,lower-roman) ". "}ol.lst-kix_jzpgx qq6fzzf-4.start{counter-reset:lst-ctn-kix_jzpgxqq6fzzf-4 0}ol.lst-kix_kvgsl0s9rz o4-7{list-style-type:none}.lst-kix_i2v077rod1nx-7>li:before{content:"\0025cb "} ol.lst-kix_kvgsl0s9rzo4-8{list-style-type:none}ol.lst-kix_32zxnvl59py3-2.start{c ounter-reset:lst-ctn-kix_32zxnvl59py3-2 0}ol.lst-kix_kvgsl0s9rzo4-5{list-style-t ype:none}ol.lst-kix_kvgsl0s9rzo4-6{list-style-type:none}.lst-kix_4s9m9sikrtm7-5> li:before{content:"" counter(lst-ctn-kix_4s9m9sikrtm7-5,lower-roman) ". "}.lst-k ix_pza3ybm1wtg3-5>li{counter-increment:lst-ctn-kix_pza3ybm1wtg3-5}ol.lst-kix_kvg sl0s9rzo4-3{list-style-type:none}.lst-kix_j51xhhtple7c-5>li:before{content:"" co unter(lst-ctn-kix_j51xhhtple7c-5,lower-roman) ". "}ol.lst-kix_kvgsl0s9rzo4-4{lis t-style-type:none}ol.lst-kix_kvgsl0s9rzo4-1{list-style-type:none}ol.lst-kix_kvgs l0s9rzo4-2{list-style-type:none}.lst-kix_2uog6ch44jpu-8>li:before{content:"" cou nter(lst-ctn-kix_2uog6ch44jpu-8,lower-roman) ". "}.lst-kix_z7in7d1ar2zt-8>li:bef ore{content:"" counter(lst-ctn-kix_z7in7d1ar2zt-8,lower-roman) ". "}.lst-kix_wzk 0mdv2qg9u-0>li{counter-increment:lst-ctn-kix_wzk0mdv2qg9u-0}.lst-kix_juntnht2kzz a-8>li{counter-increment:lst-ctn-kix_juntnht2kzza-8}.lst-kix_lixznqbqiris-2>li{c ounter-increment:lst-ctn-kix_lixznqbqiris-2}.lst-kix_j51xhhtple7c-8>li:before{co ntent:"" counter(lst-ctn-kix_j51xhhtple7c-8,lower-roman) ". "}.lst-kix_1c0w7icor qz1-6>li{counter-increment:lst-ctn-kix_1c0w7icorqz1-6}ol.lst-kix_jpf3cr7xe1pc-2. start{counter-reset:lst-ctn-kix_jpf3cr7xe1pc-2 0}.lst-kix_7kmxmbi2lsws-7>li{coun ter-increment:lst-ctn-kix_7kmxmbi2lsws-7}.lst-kix_lgtbofvz5zxd-4>li:before{conte nt:"" counter(lst-ctn-kix_lgtbofvz5zxd-4,lower-latin) ". "}.lst-kix_z7in7d1ar2zt -2>li{counter-increment:lst-ctn-kix_z7in7d1ar2zt-2}ol.lst-kix_1gqf2s78t7o1-8.sta rt{counter-reset:lst-ctn-kix_1gqf2s78t7o1-8 0}.lst-kix_1g0xzctl1vi-0>li{counter- increment:lst-ctn-kix_1g0xzctl1vi-0}ol.lst-kix_lixznqbqiris-7{list-style-type:no ne}ol.lst-kix_lixznqbqiris-8{list-style-type:none}ol.lst-kix_lixznqbqiris-5{list -style-type:none}ol.lst-kix_lixznqbqiris-6{list-style-type:none}.lst-kix_7kmxmbi 2lsws-1>li{counter-increment:lst-ctn-kix_7kmxmbi2lsws-1}ol.lst-kix_lixznqbqiris- 3{list-style-type:none}ol.lst-kix_lixznqbqiris-4{list-style-type:none}.lst-kix_1 g0xzctl1vi-4>li{counter-increment:lst-ctn-kix_1g0xzctl1vi-4}ol.lst-kix_4s9m9sikr tm7-7.start{counter-reset:lst-ctn-kix_4s9m9sikrtm7-7 0}.lst-kix_z7in7d1ar2zt-4>l i{counter-increment:lst-ctn-kix_z7in7d1ar2zt-4}ol.lst-kix_lixznqbqiris-4.start{c ounter-reset:lst-ctn-kix_lixznqbqiris-4 0}.lst-kix_pa6lflf2amnu-1>li{counter-inc rement:lst-ctn-kix_pa6lflf2amnu-1}.lst-kix_5f9palqqt4mm-1>li{counter-increment:l st-ctn-kix_5f9palqqt4mm-1}ol.lst-kix_hm47sef7muk-0.start{counter-reset:lst-ctn-k ix_hm47sef7muk-0 0}.lst-kix_9tkaqbe3bnu3-3>li{counter-increment:lst-ctn-kix_9tka qbe3bnu3-3}.lst-kix_pa6lflf2amnu-4>li{counter-increment:lst-ctn-kix_pa6lflf2amnu -4}ol.lst-kix_jzpgxqq6fzzf-1.start{counter-reset:lst-ctn-kix_jzpgxqq6fzzf-1 0}ol .lst-kix_wzk0mdv2qg9u-3.start{counter-reset:lst-ctn-kix_wzk0mdv2qg9u-3 0}.lst-ki x_ffvvlgzbuz30-2>li:before{content:"\0025a0 "}.lst-kix_jxeur1wnlj7y-8>li{counte r-increment:lst-ctn-kix_jxeur1wnlj7y-8}.lst-kix_vvzditg8sno-2>li:before{content: "\0025a0 "}ol.lst-kix_vnvg10gwrc8t-4.start{counter-reset:lst-ctn-kix_vnvg10gwrc 8t-4 0}ol.lst-kix_lixznqbqiris-5.start{counter-reset:lst-ctn-kix_lixznqbqiris-5 0}ol.lst-kix_3h1iswqv3l7s-1.start{counter-reset:lst-ctn-kix_3h1iswqv3l7s-1 0}.ls t-kix_1c0w7icorqz1-0>li:before{content:"" counter(lst-ctn-kix_1c0w7icorqz1-0,dec imal) ". "}ol.lst-kix_sgsi64vug03j-8{list-style-type:none}.lst-kix_60g29afx0lof- 0>li:before{content:"" counter(lst-ctn-kix_60g29afx0lof-0,decimal) ". "}.lst-kix _wzk0mdv2qg9u-4>li{counter-increment:lst-ctn-kix_wzk0mdv2qg9u-4}ol.lst-kix_sgsi6 4vug03j-6{list-style-type:none}ol.lst-kix_sgsi64vug03j-7{list-style-type:none}.l st-kix_t9jkz28ln50j-2>li{counter-increment:lst-ctn-kix_t9jkz28ln50j-2}ol.lst-kix _sgsi64vug03j-4{list-style-type:none}ol.lst-kix_sgsi64vug03j-5{list-style-type:n one}.lst-kix_jxeur1wnlj7y-4>li{counter-increment:lst-ctn-kix_jxeur1wnlj7y-4}ol.l st-kix_sgsi64vug03j-2{list-style-type:none}ol.lst-kix_sgsi64vug03j-3{list-style- type:none}.lst-kix_wzk0mdv2qg9u-3>li{counter-increment:lst-ctn-kix_wzk0mdv2qg9u- 3}ol.lst-kix_sgsi64vug03j-0{list-style-type:none}ol.lst-kix_sgsi64vug03j-1{list- style-type:none}.lst-kix_kf08e4mo0q15-0>li{counter-increment:lst-ctn-kix_kf08e4m o0q15-0}ol.lst-kix_vnvg10gwrc8t-1{list-style-type:none}ol.lst-kix_vnvg10gwrc8t-0 {list-style-type:none}.lst-kix_32zxnvl59py3-1>li{counter-increment:lst-ctn-kix_3 2zxnvl59py3-1}.lst-kix_2uog6ch44jpu-5>li{counter-increment:lst-ctn-kix_2uog6ch44 jpu-5}.lst-kix_a4uqy1hx9g3-8>li:before{content:"\0025a0 "}ol.lst-kix_60g29afx0l of-7.start{counter-reset:lst-ctn-kix_60g29afx0lof-7 0}.lst-kix_jzpgxqq6fzzf-3>li {counter-increment:lst-ctn-kix_jzpgxqq6fzzf-3}.lst-kix_jzpgxqq6fzzf-3>li:before{ content:"" counter(lst-ctn-kix_jzpgxqq6fzzf-3,decimal) ". "}.lst-kix_t9jkz28ln50 j-7>li:before{content:"" counter(lst-ctn-kix_t9jkz28ln50j-7,lower-latin) ". "}.l st-kix_oqqzpe3b3nud-5>li:before{content:"" counter(lst-ctn-kix_oqqzpe3b3nud-5,lo wer-roman) ". "}.lst-kix_7kmxmbi2lsws-2>li:before{content:"" counter(lst-ctn-kix _7kmxmbi2lsws-2,lower-roman) ". "}.lst-kix_v454r7upbzuz-3>li{counter-increment:l st-ctn-kix_v454r7upbzuz-3}ol.lst-kix_m8zky1oy6k60-3.start{counter-reset:lst-ctn- kix_m8zky1oy6k60-3 0}.lst-kix_v454r7upbzuz-5>li:before{content:"" counter(lst-ct n-kix_v454r7upbzuz-5,lower-roman) ". "}.lst-kix_jpf3cr7xe1pc-6>li:before{content :"" counter(lst-ctn-kix_jpf3cr7xe1pc-6,decimal) ". "}.lst-kix_pyiocxf7nngd-5>li: before{content:"" counter(lst-ctn-kix_pyiocxf7nngd-5,lower-roman) ". "}ol.lst-ki x_lixznqbqiris-0{list-style-type:none}ol.lst-kix_lixznqbqiris-1{list-style-type: none}ol.lst-kix_lixznqbqiris-2{list-style-type:none}ol.lst-kix_wzk0mdv2qg9u-2.st art{counter-reset:lst-ctn-kix_wzk0mdv2qg9u-2 0}.lst-kix_5f9palqqt4mm-5>li:before {content:"" counter(lst-ctn-kix_5f9palqqt4mm-5,lower-roman) ". "}ol.lst-kix_9tka qbe3bnu3-4.start{counter-reset:lst-ctn-kix_9tkaqbe3bnu3-4 0}ol.lst-kix_57tjkabqi zo2-0{list-style-type:none}ol.lst-kix_57tjkabqizo2-1{list-style-type:none}ol.lst -kix_wzk0mdv2qg9u-6.start{counter-reset:lst-ctn-kix_wzk0mdv2qg9u-6 0}.lst-kix_uq 748w6pjv3r-6>li:before{content:"" counter(lst-ctn-kix_uq748w6pjv3r-6,decimal) ". "}.lst-kix_opzlp0rjj486-4>li:before{content:"" counter(lst-ctn-kix_opzlp0rjj486 -4,lower-latin) ". "}ol.lst-kix_57tjkabqizo2-4{list-style-type:none}ol.lst-kix_5 7tjkabqizo2-5{list-style-type:none}ol.lst-kix_57tjkabqizo2-2{list-style-type:non e}ol.lst-kix_57tjkabqizo2-3{list-style-type:none}ol.lst-kix_1c0w7icorqz1-2.start {counter-reset:lst-ctn-kix_1c0w7icorqz1-2 0}.lst-kix_hvjet9voiiio-7>li{counter-i ncrement:lst-ctn-kix_hvjet9voiiio-7}.lst-kix_nhaic9xr6pf-0>li{counter-increment: lst-ctn-kix_nhaic9xr6pf-0}ol.lst-kix_4s9m9sikrtm7-1.start{counter-reset:lst-ctn- kix_4s9m9sikrtm7-1 0}.lst-kix_p8a3u4ougab9-4>li:before{content:"" counter(lst-ct n-kix_p8a3u4ougab9-4,lower-latin) ". "}ol.lst-kix_57tjkabqizo2-8{list-style-type :none}ol.lst-kix_57tjkabqizo2-7{list-style-type:none}ol.lst-kix_57tjkabqizo2-6{l ist-style-type:none}ol.lst-kix_pa6lflf2amnu-1.start{counter-reset:lst-ctn-kix_pa 6lflf2amnu-1 0}.lst-kix_kc6aimw8pnra-5>li:before{content:"\0025a0 "}ol.lst-kix_ jpf3cr7xe1pc-8.start{counter-reset:lst-ctn-kix_jpf3cr7xe1pc-8 0}.lst-kix_5f9palq qt4mm-0>li{counter-increment:lst-ctn-kix_5f9palqqt4mm-0}ol.lst-kix_p8a3u4ougab9- 6.start{counter-reset:lst-ctn-kix_p8a3u4ougab9-6 0}ol.lst-kix_sgsi64vug03j-3.sta rt{counter-reset:lst-ctn-kix_sgsi64vug03j-3 0}.lst-kix_ggm78fckav5h-4>li:before{ content:"" counter(lst-ctn-kix_ggm78fckav5h-4,lower-latin) ". "}.lst-kix_m8zky1o y6k60-0>li{counter-increment:lst-ctn-kix_m8zky1oy6k60-0}.lst-kix_v454r7upbzuz-3> li:before{content:"" counter(lst-ctn-kix_v454r7upbzuz-3,decimal) ". "}.lst-kix_q eukrmzdd856-5>li{counter-increment:lst-ctn-kix_qeukrmzdd856-5}ol.lst-kix_pza3ybm 1wtg3-6.start{counter-reset:lst-ctn-kix_pza3ybm1wtg3-6 0}.lst-kix_juntnht2kzza-5 >li:before{content:"" counter(lst-ctn-kix_juntnht2kzza-5,lower-roman) ". "}ol.ls t-kix_sgsi64vug03j-0.start{counter-reset:lst-ctn-kix_sgsi64vug03j-0 0}.lst-kix_8 uscekru9dbw-0>li{counter-increment:lst-ctn-kix_8uscekru9dbw-0}ol.lst-kix_v454r7u pbzuz-5.start{counter-reset:lst-ctn-kix_v454r7upbzuz-5 0}.lst-kix_9tkaqbe3bnu3-7 >li{counter-increment:lst-ctn-kix_9tkaqbe3bnu3-7}ol.lst-kix_jzpgxqq6fzzf-5.start {counter-reset:lst-ctn-kix_jzpgxqq6fzzf-5 0}.lst-kix_5f9palqqt4mm-1>li:before{co ntent:"" counter(lst-ctn-kix_5f9palqqt4mm-1,lower-latin) ". "}.lst-kix_ffvvlgzbu z30-7>li:before{content:"\0025cb "}.lst-kix_pza3ybm1wtg3-3>li:before{content:"" counter(lst-ctn-kix_pza3ybm1wtg3-3,decimal) ". "}ol.lst-kix_5f9palqqt4mm-0.star t{counter-reset:lst-ctn-kix_5f9palqqt4mm-0 0}.lst-kix_vnvg10gwrc8t-6>li:before{c ontent:"" counter(lst-ctn-kix_vnvg10gwrc8t-6,decimal) ". "}.lst-kix_a4uqy1hx9g3- 6>li:before{content:"\0025cf "}ol.lst-kix_jzpgxqq6fzzf-1{list-style-type:none}o l.lst-kix_jzpgxqq6fzzf-0{list-style-type:none}.lst-kix_7kmxmbi2lsws-7>li:before{ content:"" counter(lst-ctn-kix_7kmxmbi2lsws-7,lower-latin) ". "}.lst-kix_32zxnvl 59py3-2>li{counter-increment:lst-ctn-kix_32zxnvl59py3-2}ol.lst-kix_hm47sef7muk-4 {list-style-type:none}.lst-kix_qeukrmzdd856-1>li{counter-increment:lst-ctn-kix_q eukrmzdd856-1}ol.lst-kix_hm47sef7muk-3{list-style-type:none}.lst-kix_qeukrmzdd85 6-0>li:before{content:"" counter(lst-ctn-kix_qeukrmzdd856-0,decimal) ". "}ol.lst -kix_hm47sef7muk-6{list-style-type:none}ol.lst-kix_hm47sef7muk-5{list-style-type :none}.lst-kix_vvzditg8sno-8>li:before{content:"\0025a0 "}ol.lst-kix_hm47sef7mu k-8{list-style-type:none}.lst-kix_m1x0qzeeadaz-0>li{counter-increment:lst-ctn-ki x_m1x0qzeeadaz-0}ol.lst-kix_hm47sef7muk-7{list-style-type:none}ol.lst-kix_32zxnv l59py3-5.start{counter-reset:lst-ctn-kix_32zxnvl59py3-5 0}.lst-kix_pyiocxf7nngd- 7>li:before{content:"" counter(lst-ctn-kix_pyiocxf7nngd-7,lower-latin) ". "}.lst -kix_ffvvlgzbuz30-4>li:before{content:"\0025cb "}.lst-kix_1g0xzctl1vi-0>li:befo re{content:"" counter(lst-ctn-kix_1g0xzctl1vi-0,decimal) ". "}ol.lst-kix_8uscekr u9dbw-5.start{counter-reset:lst-ctn-kix_8uscekru9dbw-5 0}ol.lst-kix_hm47sef7muk- 0{list-style-type:none}ol.lst-kix_qeukrmzdd856-0.start{counter-reset:lst-ctn-kix _qeukrmzdd856-0 0}ol.lst-kix_hm47sef7muk-2{list-style-type:none}ol.lst-kix_hm47s ef7muk-1{list-style-type:none}.lst-kix_8uscekru9dbw-1>li{counter-increment:lst-c tn-kix_8uscekru9dbw-1}ol.lst-kix_sgsi64vug03j-4.start{counter-reset:lst-ctn-kix_ sgsi64vug03j-4 0}ol.lst-kix_nhaic9xr6pf-3.start{counter-reset:lst-ctn-kix_nhaic9 xr6pf-3 0}ol.lst-kix_qeukrmzdd856-3.start{counter-reset:lst-ctn-kix_qeukrmzdd856 -3 0}.lst-kix_vnvg10gwrc8t-8>li{counter-increment:lst-ctn-kix_vnvg10gwrc8t-8}ul. lst-kix_iqyc5gy523tq-4{list-style-type:none}ul.lst-kix_iqyc5gy523tq-3{list-style -type:none}ol.lst-kix_uq748w6pjv3r-4.start{counter-reset:lst-ctn-kix_uq748w6pjv3 r-4 0}ul.lst-kix_iqyc5gy523tq-6{list-style-type:none}.lst-kix_8uscekru9dbw-7>li: before{content:"" counter(lst-ctn-kix_8uscekru9dbw-7,lower-latin) ". "}.lst-kix_ q1b5wk7cmirb-3>li:before{content:"\0025cf "}ul.lst-kix_iqyc5gy523tq-5{list-styl e-type:none}ul.lst-kix_iqyc5gy523tq-8{list-style-type:none}.lst-kix_iqyc5gy523tq -7>li:before{content:"\0025cb "}ul.lst-kix_iqyc5gy523tq-7{list-style-type:none} .lst-kix_pa6lflf2amnu-5>li:before{content:"" counter(lst-ctn-kix_pa6lflf2amnu-5, lower-roman) ". "}.lst-kix_57tjkabqizo2-6>li{counter-increment:lst-ctn-kix_57tjk abqizo2-6}ul.lst-kix_iqyc5gy523tq-1{list-style-type:none}.lst-kix_opzlp0rjj486-0 >li{counter-increment:lst-ctn-kix_opzlp0rjj486-0}ul.lst-kix_iqyc5gy523tq-2{list- style-type:none}.lst-kix_jzpgxqq6fzzf-6>li{counter-increment:lst-ctn-kix_jzpgxqq 6fzzf-6}ul.lst-kix_iqyc5gy523tq-0{list-style-type:none}.lst-kix_m1x0qzeeadaz-1>l i:before{content:"" counter(lst-ctn-kix_m1x0qzeeadaz-1,lower-latin) ". "}ol.lst- kix_8dg0b92yw51r-1.start{counter-reset:lst-ctn-kix_8dg0b92yw51r-1 0}.lst-kix_t9j kz28ln50j-2>li:before{content:"" counter(lst-ctn-kix_t9jkz28ln50j-2,lower-roman) ". "}.lst-kix_kc6aimw8pnra-4>li:before{content:"\0025cb "}ol.lst-kix_m1x0qzeea daz-0.start{counter-reset:lst-ctn-kix_m1x0qzeeadaz-0 0}.lst-kix_m8zky1oy6k60-1>l i{counter-increment:lst-ctn-kix_m8zky1oy6k60-1}.lst-kix_ggm78fckav5h-2>li{counte r-increment:lst-ctn-kix_ggm78fckav5h-2}ol.lst-kix_z7in7d1ar2zt-8.start{counter-r eset:lst-ctn-kix_z7in7d1ar2zt-8 0}.lst-kix_1c0w7icorqz1-5>li{counter-increment:l st-ctn-kix_1c0w7icorqz1-5}ol.lst-kix_kvgsl0s9rzo4-0.start{counter-reset:lst-ctn- kix_kvgsl0s9rzo4-0 0}ol.lst-kix_opzlp0rjj486-4.start{counter-reset:lst-ctn-kix_o pzlp0rjj486-4 0}ol.lst-kix_2uog6ch44jpu-0.start{counter-reset:lst-ctn-kix_2uog6c h44jpu-0 0}.lst-kix_1c0w7icorqz1-1>li:before{content:"" counter(lst-ctn-kix_1c0w 7icorqz1-1,lower-latin) ". "}.lst-kix_m1x0qzeeadaz-6>li{counter-increment:lst-ct n-kix_m1x0qzeeadaz-6}ol.lst-kix_uq748w6pjv3r-2{list-style-type:none}.lst-kix_wzk 0mdv2qg9u-6>li:before{content:"" counter(lst-ctn-kix_wzk0mdv2qg9u-6,decimal) ". "}ol.lst-kix_uq748w6pjv3r-3{list-style-type:none}.lst-kix_kf08e4mo0q15-8>li:befo re{content:"" counter(lst-ctn-kix_kf08e4mo0q15-8,lower-roman) ". "}ol.lst-kix_uq 748w6pjv3r-4{list-style-type:none}ol.lst-kix_uq748w6pjv3r-5{list-style-type:none }ol.lst-kix_uq748w6pjv3r-6{list-style-type:none}ol.lst-kix_7kmxmbi2lsws-8.start{ counter-reset:lst-ctn-kix_7kmxmbi2lsws-8 0}ol.lst-kix_uq748w6pjv3r-7{list-style- type:none}ol.lst-kix_uq748w6pjv3r-8{list-style-type:none}.lst-kix_v454r7upbzuz-1 >li{counter-increment:lst-ctn-kix_v454r7upbzuz-1}.lst-kix_lgtbofvz5zxd-4>li{coun ter-increment:lst-ctn-kix_lgtbofvz5zxd-4}ol.lst-kix_uq748w6pjv3r-0{list-style-ty pe:none}ol.lst-kix_v454r7upbzuz-4.start{counter-reset:lst-ctn-kix_v454r7upbzuz-4 0}ol.lst-kix_uq748w6pjv3r-1{list-style-type:none}ol.lst-kix_qeukrmzdd856-1.star t{counter-reset:lst-ctn-kix_qeukrmzdd856-1 0}ol.lst-kix_pyiocxf7nngd-3.start{cou nter-reset:lst-ctn-kix_pyiocxf7nngd-3 0}ol.lst-kix_jxeur1wnlj7y-3.start{counter- reset:lst-ctn-kix_jxeur1wnlj7y-3 0}ol.lst-kix_j51xhhtple7c-8.start{counter-reset :lst-ctn-kix_j51xhhtple7c-8 0}.lst-kix_2uog6ch44jpu-4>li{counter-increment:lst-c tn-kix_2uog6ch44jpu-4}.lst-kix_v454r7upbzuz-8>li:before{content:"" counter(lst-c tn-kix_v454r7upbzuz-8,lower-roman) ". "}ul.lst-kix_fpxsljpyl73u-6{list-style-typ e:none}ul.lst-kix_fpxsljpyl73u-7{list-style-type:none}ul.lst-kix_fpxsljpyl73u-4{ list-style-type:none}ul.lst-kix_fpxsljpyl73u-5{list-style-type:none}ol.lst-kix_3 h1iswqv3l7s-3.start{counter-reset:lst-ctn-kix_3h1iswqv3l7s-3 0}ul.lst-kix_fpxslj pyl73u-2{list-style-type:none}ul.lst-kix_fpxsljpyl73u-3{list-style-type:none}ol. lst-kix_8dg0b92yw51r-2.start{counter-reset:lst-ctn-kix_8dg0b92yw51r-2 0}ul.lst-k ix_fpxsljpyl73u-0{list-style-type:none}ul.lst-kix_fpxsljpyl73u-1{list-style-type :none}.lst-kix_pyiocxf7nngd-1>li:before{content:"" counter(lst-ctn-kix_pyiocxf7n ngd-1,lower-latin) ". "}ul.lst-kix_fpxsljpyl73u-8{list-style-type:none}.lst-kix_ bnpbicbhbbru-6>li:before{content:"\0025cf "}.lst-kix_bnpbicbhbbru-3>li:before{c ontent:"\0025cf "}.lst-kix_bnpbicbhbbru-4>li:before{content:"\0025cb "}ol.lst- kix_jxeur1wnlj7y-1.start{counter-reset:lst-ctn-kix_jxeur1wnlj7y-1 0}.lst-kix_jxe ur1wnlj7y-3>li:before{content:"" counter(lst-ctn-kix_jxeur1wnlj7y-3,decimal) ". "}ol.lst-kix_pyiocxf7nngd-2.start{counter-reset:lst-ctn-kix_pyiocxf7nngd-2 0}.ls t-kix_2uog6ch44jpu-1>li:before{content:"" counter(lst-ctn-kix_2uog6ch44jpu-1,low er-latin) ". "}.lst-kix_z7in7d1ar2zt-1>li:before{content:"" counter(lst-ctn-kix_ z7in7d1ar2zt-1,lower-latin) ". "}ol.lst-kix_fr6w5z45nvx0-8.start{counter-reset:l st-ctn-kix_fr6w5z45nvx0-8 0}.lst-kix_qeukrmzdd856-1>li:before{content:"" counter (lst-ctn-kix_qeukrmzdd856-1,lower-latin) ". "}ol.lst-kix_hvjet9voiiio-5.start{co unter-reset:lst-ctn-kix_hvjet9voiiio-5 0}.lst-kix_a4uqy1hx9g3-5>li:before{conten t:"\0025a0 "}.lst-kix_57tjkabqizo2-1>li:before{content:"" counter(lst-ctn-kix_5 7tjkabqizo2-1,lower-latin) ". "}ol.lst-kix_uq748w6pjv3r-0.start{counter-reset:ls t-ctn-kix_uq748w6pjv3r-0 0}.lst-kix_vnvg10gwrc8t-6>li{counter-increment:lst-ctn- kix_vnvg10gwrc8t-6}ol.lst-kix_1g0xzctl1vi-8.start{counter-reset:lst-ctn-kix_1g0x zctl1vi-8 0}.lst-kix_9tkaqbe3bnu3-6>li:before{content:"" counter(lst-ctn-kix_9tk aqbe3bnu3-6,decimal) ". "}ul.lst-kix_t7any4lo9hoq-1{list-style-type:none}ul.lst- kix_t7any4lo9hoq-0{list-style-type:none}ol.lst-kix_dblgil8t24zy-3.start{counter- reset:lst-ctn-kix_dblgil8t24zy-3 0}ol.lst-kix_t9jkz28ln50j-8{list-style-type:non e}ul.lst-kix_t7any4lo9hoq-8{list-style-type:none}ul.lst-kix_t7any4lo9hoq-6{list- style-type:none}ol.lst-kix_j51xhhtple7c-5.start{counter-reset:lst-ctn-kix_j51xhh tple7c-5 0}ul.lst-kix_t7any4lo9hoq-7{list-style-type:none}ol.lst-kix_t9jkz28ln50 j-4{list-style-type:none}ul.lst-kix_t7any4lo9hoq-4{list-style-type:none}.lst-kix _5f9palqqt4mm-7>li:before{content:"" counter(lst-ctn-kix_5f9palqqt4mm-7,lower-la tin) ". "}ol.lst-kix_t9jkz28ln50j-5{list-style-type:none}ul.lst-kix_t7any4lo9hoq -5{list-style-type:none}.lst-kix_vnvg10gwrc8t-3>li:before{content:"" counter(lst -ctn-kix_vnvg10gwrc8t-3,decimal) ". "}ol.lst-kix_t9jkz28ln50j-6{list-style-type: none}ul.lst-kix_t7any4lo9hoq-2{list-style-type:none}ol.lst-kix_t9jkz28ln50j-7{li st-style-type:none}ul.lst-kix_t7any4lo9hoq-3{list-style-type:none}ol.lst-kix_jzp gxqq6fzzf-5{list-style-type:none}ol.lst-kix_jzpgxqq6fzzf-4{list-style-type:none} ol.lst-kix_jzpgxqq6fzzf-3{list-style-type:none}ol.lst-kix_jzpgxqq6fzzf-2{list-st yle-type:none}ol.lst-kix_jzpgxqq6fzzf-8{list-style-type:none}ol.lst-kix_jzpgxqq6 fzzf-7{list-style-type:none}ol.lst-kix_jzpgxqq6fzzf-6{list-style-type:none}.lst- kix_qeukrmzdd856-6>li{counter-increment:lst-ctn-kix_qeukrmzdd856-6}.lst-kix_nhai c9xr6pf-4>li{counter-increment:lst-ctn-kix_nhaic9xr6pf-4}ol.lst-kix_t9jkz28ln50j -1{list-style-type:none}ol.lst-kix_t9jkz28ln50j-0{list-style-type:none}ol.lst-ki x_t9jkz28ln50j-3{list-style-type:none}.lst-kix_lgtbofvz5zxd-2>li:before{content: "" counter(lst-ctn-kix_lgtbofvz5zxd-2,lower-roman) ". "}ol.lst-kix_t9jkz28ln50j- 2{list-style-type:none}.lst-kix_hvjet9voiiio-2>li{counter-increment:lst-ctn-kix_ hvjet9voiiio-2}.lst-kix_juntnht2kzza-6>li{counter-increment:lst-ctn-kix_juntnht2 kzza-6}.lst-kix_nho7sy6cpfv0-6>li:before{content:"" counter(lst-ctn-kix_nho7sy6c pfv0-6,decimal) ". "}.lst-kix_m8zky1oy6k60-8>li:before{content:"" counter(lst-ct n-kix_m8zky1oy6k60-8,lower-roman) ". "}ol.lst-kix_uq748w6pjv3r-6.start{counter-r eset:lst-ctn-kix_uq748w6pjv3r-6 0}ul.lst-kix_q1b5wk7cmirb-3{list-style-type:none }ul.lst-kix_q1b5wk7cmirb-2{list-style-type:none}ul.lst-kix_q1b5wk7cmirb-5{list-s tyle-type:none}ul.lst-kix_q1b5wk7cmirb-4{list-style-type:none}ul.lst-kix_q1b5wk7 cmirb-7{list-style-type:none}ul.lst-kix_q1b5wk7cmirb-6{list-style-type:none}ul.l st-kix_q1b5wk7cmirb-8{list-style-type:none}.lst-kix_a4uqy1hx9g3-3>li:before{cont ent:"\0025cf "}ol.lst-kix_hm47sef7muk-3.start{counter-reset:lst-ctn-kix_hm47sef 7muk-3 0}ol.lst-kix_9tkaqbe3bnu3-3.start{counter-reset:lst-ctn-kix_9tkaqbe3bnu3- 3 0}.lst-kix_nho7sy6cpfv0-2>li:before{content:"" counter(lst-ctn-kix_nho7sy6cpfv 0-2,lower-roman) ". "}.lst-kix_nhaic9xr6pf-8>li{counter-increment:lst-ctn-kix_nh aic9xr6pf-8}ol.lst-kix_opzlp0rjj486-5.start{counter-reset:lst-ctn-kix_opzlp0rjj4 86-5 0}ol.lst-kix_opzlp0rjj486-3.start{counter-reset:lst-ctn-kix_opzlp0rjj486-3 0}.lst-kix_pa6lflf2amnu-3>li{counter-increment:lst-ctn-kix_pa6lflf2amnu-3}.lst-k ix_1c0w7icorqz1-0>li{counter-increment:lst-ctn-kix_1c0w7icorqz1-0}ol.lst-kix_jun tnht2kzza-8{list-style-type:none}.lst-kix_z7in7d1ar2zt-3>li:before{content:"" co unter(lst-ctn-kix_z7in7d1ar2zt-3,decimal) ". "}.lst-kix_wzk0mdv2qg9u-0>li:before {content:"" counter(lst-ctn-kix_wzk0mdv2qg9u-0,decimal) ". "}.lst-kix_m1x0qzeead az-2>li{counter-increment:lst-ctn-kix_m1x0qzeeadaz-2}ol.lst-kix_fr6w5z45nvx0-4{l ist-style-type:none}ol.lst-kix_fr6w5z45nvx0-5{list-style-type:none}ol.lst-kix_fr 6w5z45nvx0-6{list-style-type:none}ol.lst-kix_fr6w5z45nvx0-7{list-style-type:none }ol.lst-kix_fr6w5z45nvx0-8{list-style-type:none}ol.lst-kix_juntnht2kzza-1{list-s tyle-type:none}ol.lst-kix_juntnht2kzza-0{list-style-type:none}ol.lst-kix_juntnht 2kzza-3{list-style-type:none}ol.lst-kix_juntnht2kzza-2{list-style-type:none}ol.l st-kix_juntnht2kzza-5{list-style-type:none}ol.lst-kix_juntnht2kzza-4{list-style- type:none}ol.lst-kix_juntnht2kzza-7{list-style-type:none}ol.lst-kix_juntnht2kzza -6{list-style-type:none}ol.lst-kix_lgtbofvz5zxd-5.start{counter-reset:lst-ctn-ki x_lgtbofvz5zxd-5 0}.lst-kix_32zxnvl59py3-5>li{counter-increment:lst-ctn-kix_32zx nvl59py3-5}ol.lst-kix_fr6w5z45nvx0-1{list-style-type:none}ol.lst-kix_fr6w5z45nvx 0-0{list-style-type:none}ol.lst-kix_fr6w5z45nvx0-3{list-style-type:none}ol.lst-k ix_fr6w5z45nvx0-2{list-style-type:none}.lst-kix_wzk0mdv2qg9u-5>li:before{content :"" counter(lst-ctn-kix_wzk0mdv2qg9u-5,lower-roman) ". "}.lst-kix_kf08e4mo0q15-5 >li{counter-increment:lst-ctn-kix_kf08e4mo0q15-5}.lst-kix_8uscekru9dbw-3>li:befo re{content:"" counter(lst-ctn-kix_8uscekru9dbw-3,decimal) ". "}ol.lst-kix_qeukrm zdd856-2.start{counter-reset:lst-ctn-kix_qeukrmzdd856-2 0}ol.lst-kix_qz5wp1hdd24 k-4.start{counter-reset:lst-ctn-kix_qz5wp1hdd24k-4 0}ul.lst-kix_q1b5wk7cmirb-0{l ist-style-type:none}ul.lst-kix_q1b5wk7cmirb-1{list-style-type:none}ol.lst-kix_db lgil8t24zy-4.start{counter-reset:lst-ctn-kix_dblgil8t24zy-4 0}ol.lst-kix_3h1iswq v3l7s-2.start{counter-reset:lst-ctn-kix_3h1iswqv3l7s-2 0}ol.lst-kix_lixznqbqiris -8.start{counter-reset:lst-ctn-kix_lixznqbqiris-8 0}ol.lst-kix_m1x0qzeeadaz-2.st art{counter-reset:lst-ctn-kix_m1x0qzeeadaz-2 0}ol.lst-kix_1c0w7icorqz1-3.start{c ounter-reset:lst-ctn-kix_1c0w7icorqz1-3 0}.lst-kix_8dg0b92yw51r-1>li{counter-inc rement:lst-ctn-kix_8dg0b92yw51r-1}.lst-kix_a4uqy1hx9g3-4>li:before{content:"\002 5cb "}ol.lst-kix_pyiocxf7nngd-8.start{counter-reset:lst-ctn-kix_pyiocxf7nngd-8 0}.lst-kix_60g29afx0lof-0>li{counter-increment:lst-ctn-kix_60g29afx0lof-0}.lst-k ix_uq748w6pjv3r-2>li{counter-increment:lst-ctn-kix_uq748w6pjv3r-2}.lst-kix_jpf3c r7xe1pc-6>li{counter-increment:lst-ctn-kix_jpf3cr7xe1pc-6}ol.lst-kix_lgtbofvz5zx d-2.start{counter-reset:lst-ctn-kix_lgtbofvz5zxd-2 0}.lst-kix_jxeur1wnlj7y-0>li: before{content:"" counter(lst-ctn-kix_jxeur1wnlj7y-0,decimal) ". "}.lst-kix_fr6w 5z45nvx0-1>li:before{content:"" counter(lst-ctn-kix_fr6w5z45nvx0-1,lower-latin) ". "}.lst-kix_jpf3cr7xe1pc-8>li:before{content:"" counter(lst-ctn-kix_jpf3cr7xe1 pc-8,lower-roman) ". "}.lst-kix_jxeur1wnlj7y-2>li:before{content:"" counter(lst- ctn-kix_jxeur1wnlj7y-2,lower-roman) ". "}.lst-kix_4s9m9sikrtm7-1>li:before{conte nt:"" counter(lst-ctn-kix_4s9m9sikrtm7-1,lower-latin) ". "}.lst-kix_lgtbofvz5zxd -8>li:before{content:"" counter(lst-ctn-kix_lgtbofvz5zxd-8,lower-roman) ". "}.ls t-kix_5f9palqqt4mm-6>li{counter-increment:lst-ctn-kix_5f9palqqt4mm-6}ol.lst-kix_ m1x0qzeeadaz-1{list-style-type:none}ol.lst-kix_m1x0qzeeadaz-0{list-style-type:no ne}.lst-kix_lixznqbqiris-3>li:before{content:"" counter(lst-ctn-kix_lixznqbqiris -3,decimal) ". "}ol.lst-kix_m1x0qzeeadaz-5{list-style-type:none}ol.lst-kix_m1x0q zeeadaz-4{list-style-type:none}.lst-kix_kf08e4mo0q15-8>li{counter-increment:lst- ctn-kix_kf08e4mo0q15-8}ol.lst-kix_m1x0qzeeadaz-3{list-style-type:none}ol.lst-kix _jxeur1wnlj7y-6.start{counter-reset:lst-ctn-kix_jxeur1wnlj7y-6 0}.lst-kix_9tkaqb e3bnu3-1>li{counter-increment:lst-ctn-kix_9tkaqbe3bnu3-1}ol.lst-kix_m1x0qzeeadaz -2{list-style-type:none}.lst-kix_hm47sef7muk-2>li:before{content:"" counter(lst- ctn-kix_hm47sef7muk-2,lower-roman) ". "}.lst-kix_sgsi64vug03j-5>li{counter-incre ment:lst-ctn-kix_sgsi64vug03j-5}ol.lst-kix_2uog6ch44jpu-4.start{counter-reset:ls t-ctn-kix_2uog6ch44jpu-4 0}.lst-kix_9tkaqbe3bnu3-3>li:before{content:"" counter( lst-ctn-kix_9tkaqbe3bnu3-3,decimal) ". "}ol.lst-kix_8dg0b92yw51r-6.start{counter -reset:lst-ctn-kix_8dg0b92yw51r-6 0}ol.lst-kix_jzpgxqq6fzzf-2.start{counter-rese t:lst-ctn-kix_jzpgxqq6fzzf-2 0}ol.lst-kix_1gqf2s78t7o1-6.start{counter-reset:lst -ctn-kix_1gqf2s78t7o1-6 0}.lst-kix_32zxnvl59py3-2>li:before{content:"" counter(l st-ctn-kix_32zxnvl59py3-2,lower-roman) ". "}.lst-kix_juntnht2kzza-0>li:before{co ntent:"" counter(lst-ctn-kix_juntnht2kzza-0,decimal) ". "}.lst-kix_jpf3cr7xe1pc- 0>li:before{content:"" counter(lst-ctn-kix_jpf3cr7xe1pc-0,decimal) ". "}ol.lst-k ix_pza3ybm1wtg3-3.start{counter-reset:lst-ctn-kix_pza3ybm1wtg3-3 0}.lst-kix_60g2 9afx0lof-6>li:before{content:"" counter(lst-ctn-kix_60g29afx0lof-6,decimal) ". " }.lst-kix_j51xhhtple7c-0>li{counter-increment:lst-ctn-kix_j51xhhtple7c-0}ol.lst- kix_m1x0qzeeadaz-6{list-style-type:none}.lst-kix_pa6lflf2amnu-8>li{counter-incre ment:lst-ctn-kix_pa6lflf2amnu-8}.lst-kix_nho7sy6cpfv0-8>li{counter-increment:lst -ctn-kix_nho7sy6cpfv0-8}ol.lst-kix_m1x0qzeeadaz-7{list-style-type:none}ol.lst-ki x_m1x0qzeeadaz-8{list-style-type:none}.lst-kix_nho7sy6cpfv0-2>li{counter-increme nt:lst-ctn-kix_nho7sy6cpfv0-2}ol.lst-kix_pyiocxf7nngd-4.start{counter-reset:lst- ctn-kix_pyiocxf7nngd-4 0}.lst-kix_pza3ybm1wtg3-3>li{counter-increment:lst-ctn-ki x_pza3ybm1wtg3-3}ol.lst-kix_qz5wp1hdd24k-1.start{counter-reset:lst-ctn-kix_qz5wp 1hdd24k-1 0}ol.lst-kix_jxeur1wnlj7y-2.start{counter-reset:lst-ctn-kix_jxeur1wnlj 7y-2 0}.lst-kix_i2v077rod1nx-1>li:before{content:"\0025cb "}.lst-kix_5f9palqqt4 mm-3>li{counter-increment:lst-ctn-kix_5f9palqqt4mm-3}.lst-kix_pa6lflf2amnu-4>li: before{content:"" counter(lst-ctn-kix_pa6lflf2amnu-4,lower-latin) ". "}.lst-kix_ pyiocxf7nngd-7>li{counter-increment:lst-ctn-kix_pyiocxf7nngd-7}.lst-kix_kvgsl0s9 rzo4-0>li{counter-increment:lst-ctn-kix_kvgsl0s9rzo4-0}.lst-kix_1g0xzctl1vi-7>li :before{content:"" counter(lst-ctn-kix_1g0xzctl1vi-7,lower-latin) ". "}.lst-kix_ opzlp0rjj486-8>li:before{content:"" counter(lst-ctn-kix_opzlp0rjj486-8,lower-rom an) ". "}ol.lst-kix_juntnht2kzza-6.start{counter-reset:lst-ctn-kix_juntnht2kzza- 6 0}.lst-kix_uq748w6pjv3r-5>li:before{content:"" counter(lst-ctn-kix_uq748w6pjv3 r-5,lower-roman) ". "}ol.lst-kix_hm47sef7muk-6.start{counter-reset:lst-ctn-kix_h m47sef7muk-6 0}.lst-kix_jxeur1wnlj7y-5>li{counter-increment:lst-ctn-kix_jxeur1wn lj7y-5}.lst-kix_vvzditg8sno-6>li:before{content:"\0025cf "}.lst-kix_5f9palqqt4m m-7>li{counter-increment:lst-ctn-kix_5f9palqqt4mm-7}ol.lst-kix_9tkaqbe3bnu3-7.st art{counter-reset:lst-ctn-kix_9tkaqbe3bnu3-7 0}ol.lst-kix_32zxnvl59py3-3.start{c ounter-reset:lst-ctn-kix_32zxnvl59py3-3 0}.lst-kix_kc6aimw8pnra-0>li:before{cont ent:"\0025cf "}.lst-kix_7kmxmbi2lsws-5>li:before{content:"" counter(lst-ctn-kix _7kmxmbi2lsws-5,lower-roman) ". "}.lst-kix_ggm78fckav5h-7>li{counter-increment:l st-ctn-kix_ggm78fckav5h-7}ol.lst-kix_lixznqbqiris-0.start{counter-reset:lst-ctn- kix_lixznqbqiris-0 0}ol.lst-kix_t9jkz28ln50j-5.start{counter-reset:lst-ctn-kix_t 9jkz28ln50j-5 0}.lst-kix_ffvvlgzbuz30-5>li:before{content:"\0025a0 "}.lst-kix_k vgsl0s9rzo4-2>li{counter-increment:lst-ctn-kix_kvgsl0s9rzo4-2}.lst-kix_jxeur1wnl j7y-7>li:before{content:"" counter(lst-ctn-kix_jxeur1wnlj7y-7,lower-latin) ". "} ol.lst-kix_7kmxmbi2lsws-1.start{counter-reset:lst-ctn-kix_7kmxmbi2lsws-1 0}.lst- kix_dblgil8t24zy-1>li{counter-increment:lst-ctn-kix_dblgil8t24zy-1}ol.lst-kix_m8 zky1oy6k60-8{list-style-type:none}ol.lst-kix_m8zky1oy6k60-7{list-style-type:none }ol.lst-kix_ggm78fckav5h-4.start{counter-reset:lst-ctn-kix_ggm78fckav5h-4 0}ol.l st-kix_m8zky1oy6k60-6{list-style-type:none}ol.lst-kix_m8zky1oy6k60-5{list-style- type:none}ol.lst-kix_m8zky1oy6k60-4{list-style-type:none}ol.lst-kix_m8zky1oy6k60 -3{list-style-type:none}.lst-kix_hvjet9voiiio-7>li:before{content:"" counter(lst -ctn-kix_hvjet9voiiio-7,lower-latin) ". "}ol.lst-kix_m8zky1oy6k60-2{list-style-t ype:none}ol.lst-kix_m8zky1oy6k60-1{list-style-type:none}ol.lst-kix_m8zky1oy6k60- 0{list-style-type:none}.lst-kix_hm47sef7muk-0>li{counter-increment:lst-ctn-kix_h m47sef7muk-0}.lst-kix_oqqzpe3b3nud-3>li:before{content:"" counter(lst-ctn-kix_oq qzpe3b3nud-3,decimal) ". "}.lst-kix_iqyc5gy523tq-6>li:before{content:"\0025cf " }.lst-kix_qz5wp1hdd24k-0>li:before{content:"" counter(lst-ctn-kix_qz5wp1hdd24k-0 ,decimal) ". "}.lst-kix_hm47sef7muk-4>li:before{content:"" counter(lst-ctn-kix_h m47sef7muk-4,lower-latin) ". "}.lst-kix_lixznqbqiris-0>li:before{content:"" coun ter(lst-ctn-kix_lixznqbqiris-0,decimal) ". "}ol.lst-kix_60g29afx0lof-1.start{cou nter-reset:lst-ctn-kix_60g29afx0lof-1 0}.lst-kix_sgsi64vug03j-0>li:before{conten t:"" counter(lst-ctn-kix_sgsi64vug03j-0,decimal) ". "}.lst-kix_q1b5wk7cmirb-5>li :before{content:"\0025a0 "}.lst-kix_uq748w6pjv3r-1>li{counter-increment:lst-ctn -kix_uq748w6pjv3r-1}.lst-kix_t9jkz28ln50j-3>li:before{content:"" counter(lst-ctn -kix_t9jkz28ln50j-3,decimal) ". "}ol.lst-kix_5f9palqqt4mm-8.start{counter-reset: lst-ctn-kix_5f9palqqt4mm-8 0}ol.lst-kix_v454r7upbzuz-2.start{counter-reset:lst-c tn-kix_v454r7upbzuz-2 0}.lst-kix_1g0xzctl1vi-3>li{counter-increment:lst-ctn-kix_ 1g0xzctl1vi-3}.lst-kix_t7any4lo9hoq-7>li:before{content:"\0025cb "}.lst-kix_qeu krmzdd856-4>li:before{content:"" counter(lst-ctn-kix_qeukrmzdd856-4,lower-latin) ". "}ol.lst-kix_3h1iswqv3l7s-6.start{counter-reset:lst-ctn-kix_3h1iswqv3l7s-6 0 }.lst-kix_9tkaqbe3bnu3-4>li{counter-increment:lst-ctn-kix_9tkaqbe3bnu3-4}.lst-ki x_4s9m9sikrtm7-1>li{counter-increment:lst-ctn-kix_4s9m9sikrtm7-1}ol.lst-kix_nhai c9xr6pf-1.start{counter-reset:lst-ctn-kix_nhaic9xr6pf-1 0}.lst-kix_t9jkz28ln50j- 0>li{counter-increment:lst-ctn-kix_t9jkz28ln50j-0}.lst-kix_4s9m9sikrtm7-7>li:bef ore{content:"" counter(lst-ctn-kix_4s9m9sikrtm7-7,lower-latin) ". "}.lst-kix_lix znqbqiris-2>li:before{content:"" counter(lst-ctn-kix_lixznqbqiris-2,lower-roman) ". "}.lst-kix_p8a3u4ougab9-3>li{counter-increment:lst-ctn-kix_p8a3u4ougab9-3}ul .lst-kix_ffvvlgzbuz30-2{list-style-type:none}ul.lst-kix_ffvvlgzbuz30-3{list-styl e-type:none}ul.lst-kix_ffvvlgzbuz30-0{list-style-type:none}ul.lst-kix_ffvvlgzbuz 30-1{list-style-type:none}ul.lst-kix_ffvvlgzbuz30-6{list-style-type:none}.lst-ki x_ffvvlgzbuz30-1>li:before{content:"\0025cb "}ul.lst-kix_ffvvlgzbuz30-7{list-st yle-type:none}ul.lst-kix_ffvvlgzbuz30-4{list-style-type:none}ul.lst-kix_ffvvlgzb uz30-5{list-style-type:none}ul.lst-kix_ffvvlgzbuz30-8{list-style-type:none}.lst- kix_uq748w6pjv3r-3>li:before{content:"" counter(lst-ctn-kix_uq748w6pjv3r-3,decim al) ". "}.lst-kix_q1b5wk7cmirb-0>li:before{content:"\0025cf "}.lst-kix_nhaic9xr 6pf-1>li{counter-increment:lst-ctn-kix_nhaic9xr6pf-1}.lst-kix_5f9palqqt4mm-8>li: before{content:"" counter(lst-ctn-kix_5f9palqqt4mm-8,lower-roman) ". "}.lst-kix_ 60g29afx0lof-6>li{counter-increment:lst-ctn-kix_60g29afx0lof-6}.lst-kix_3h1iswqv 3l7s-2>li{counter-increment:lst-ctn-kix_3h1iswqv3l7s-2}.lst-kix_m8zky1oy6k60-3>l i{counter-increment:lst-ctn-kix_m8zky1oy6k60-3}.lst-kix_iqyc5gy523tq-2>li:before {content:"\0025a0 "}.lst-kix_fr6w5z45nvx0-3>li{counter-increment:lst-ctn-kix_fr 6w5z45nvx0-3}.lst-kix_4s9m9sikrtm7-2>li{counter-increment:lst-ctn-kix_4s9m9sikrt m7-2}ol.lst-kix_7kmxmbi2lsws-7.start{counter-reset:lst-ctn-kix_7kmxmbi2lsws-7 0} .lst-kix_v454r7upbzuz-0>li:before{content:"" counter(lst-ctn-kix_v454r7upbzuz-0, decimal) ". "}.lst-kix_3h1iswqv3l7s-6>li{counter-increment:lst-ctn-kix_3h1iswqv3 l7s-6}ol.lst-kix_pyiocxf7nngd-1.start{counter-reset:lst-ctn-kix_pyiocxf7nngd-1 0 }.lst-kix_sgsi64vug03j-3>li{counter-increment:lst-ctn-kix_sgsi64vug03j-3}.lst-ki x_hvjet9voiiio-4>li:before{content:"" counter(lst-ctn-kix_hvjet9voiiio-4,lower-l atin) ". "}.lst-kix_m1x0qzeeadaz-7>li{counter-increment:lst-ctn-kix_m1x0qzeeadaz -7}.lst-kix_jxeur1wnlj7y-8>li:before{content:"" counter(lst-ctn-kix_jxeur1wnlj7y -8,lower-roman) ". "}.lst-kix_57tjkabqizo2-4>li{counter-increment:lst-ctn-kix_57 tjkabqizo2-4}ol.lst-kix_lgtbofvz5zxd-6.start{counter-reset:lst-ctn-kix_lgtbofvz5 zxd-6 0}ol.lst-kix_hm47sef7muk-5.start{counter-reset:lst-ctn-kix_hm47sef7muk-5 0 }.lst-kix_qeukrmzdd856-2>li:before{content:"" counter(lst-ctn-kix_qeukrmzdd856-2 ,lower-roman) ". "}.lst-kix_57tjkabqizo2-5>li{counter-increment:lst-ctn-kix_57tj kabqizo2-5}.lst-kix_ggm78fckav5h-6>li{counter-increment:lst-ctn-kix_ggm78fckav5h -6}.lst-kix_jpf3cr7xe1pc-2>li:before{content:"" counter(lst-ctn-kix_jpf3cr7xe1pc -2,lower-roman) ". "}.lst-kix_1c0w7icorqz1-2>li:before{content:"" counter(lst-ct n-kix_1c0w7icorqz1-2,lower-roman) ". "}.lst-kix_hvjet9voiiio-6>li{counter-increm ent:lst-ctn-kix_hvjet9voiiio-6}ol.lst-kix_pa6lflf2amnu-3.start{counter-reset:lst -ctn-kix_pa6lflf2amnu-3 0}.lst-kix_1gqf2s78t7o1-3>li{counter-increment:lst-ctn-k ix_1gqf2s78t7o1-3}ol.lst-kix_pza3ybm1wtg3-8.start{counter-reset:lst-ctn-kix_pza3 ybm1wtg3-8 0}ol.lst-kix_1g0xzctl1vi-7.start{counter-reset:lst-ctn-kix_1g0xzctl1v i-7 0}.lst-kix_v454r7upbzuz-7>li:before{content:"" counter(lst-ctn-kix_v454r7upb zuz-7,lower-latin) ". "}.lst-kix_vnvg10gwrc8t-5>li{counter-increment:lst-ctn-kix _vnvg10gwrc8t-5}ol.lst-kix_kvgsl0s9rzo4-2.start{counter-reset:lst-ctn-kix_kvgsl0 s9rzo4-2 0}ol.lst-kix_pza3ybm1wtg3-1.start{counter-reset:lst-ctn-kix_pza3ybm1wtg 3-1 0}.lst-kix_p8a3u4ougab9-7>li{counter-increment:lst-ctn-kix_p8a3u4ougab9-7}.l st-kix_5f9palqqt4mm-5>li{counter-increment:lst-ctn-kix_5f9palqqt4mm-5}.lst-kix_8 dg0b92yw51r-0>li:before{content:"" counter(lst-ctn-kix_8dg0b92yw51r-0,decimal) " . "}.lst-kix_3h1iswqv3l7s-4>li:before{content:"" counter(lst-ctn-kix_3h1iswqv3l7 s-4,lower-latin) ". "}.lst-kix_fpxsljpyl73u-7>li:before{content:"\0025cb "}.lst -kix_m8zky1oy6k60-6>li{counter-increment:lst-ctn-kix_m8zky1oy6k60-6}.lst-kix_1g0 xzctl1vi-5>li{counter-increment:lst-ctn-kix_1g0xzctl1vi-5}ol.lst-kix_hvjet9voiii o-8.start{counter-reset:lst-ctn-kix_hvjet9voiiio-8 0}ol.lst-kix_dblgil8t24zy-5{l ist-style-type:none}ol.lst-kix_dblgil8t24zy-4{list-style-type:none}ol.lst-kix_db lgil8t24zy-3{list-style-type:none}ol.lst-kix_dblgil8t24zy-2{list-style-type:none }ol.lst-kix_dblgil8t24zy-1{list-style-type:none}ol.lst-kix_dblgil8t24zy-0{list-s tyle-type:none}.lst-kix_pza3ybm1wtg3-1>li{counter-increment:lst-ctn-kix_pza3ybm1 wtg3-1}.lst-kix_qeukrmzdd856-8>li:before{content:"" counter(lst-ctn-kix_qeukrmzd d856-8,lower-roman) ". "}.lst-kix_wzk0mdv2qg9u-4>li:before{content:"" counter(ls t-ctn-kix_wzk0mdv2qg9u-4,lower-latin) ". "}.lst-kix_j51xhhtple7c-5>li{counter-in crement:lst-ctn-kix_j51xhhtple7c-5}.lst-kix_juntnht2kzza-8>li:before{content:"" counter(lst-ctn-kix_juntnht2kzza-8,lower-roman) ". "}.lst-kix_opzlp0rjj486-5>li{ counter-increment:lst-ctn-kix_opzlp0rjj486-5}.lst-kix_kf08e4mo0q15-4>li:before{c ontent:"" counter(lst-ctn-kix_kf08e4mo0q15-4,lower-latin) ". "}ol.lst-kix_dblgil 8t24zy-8{list-style-type:none}.lst-kix_m8zky1oy6k60-1>li:before{content:"" count er(lst-ctn-kix_m8zky1oy6k60-1,lower-latin) ". "}ol.lst-kix_dblgil8t24zy-7{list-s tyle-type:none}ol.lst-kix_dblgil8t24zy-6{list-style-type:none}.lst-kix_ggm78fcka v5h-1>li{counter-increment:lst-ctn-kix_ggm78fckav5h-1}.lst-kix_ggm78fckav5h-8>li :before{content:"" counter(lst-ctn-kix_ggm78fckav5h-8,lower-roman) ". "}.lst-kix _kvgsl0s9rzo4-4>li{counter-increment:lst-ctn-kix_kvgsl0s9rzo4-4}ol.lst-kix_fr6w5 z45nvx0-7.start{counter-reset:lst-ctn-kix_fr6w5z45nvx0-7 0}.lst-kix_jpf3cr7xe1pc -5>li:before{content:"" counter(lst-ctn-kix_jpf3cr7xe1pc-5,lower-roman) ". "}.ls t-kix_jpf3cr7xe1pc-3>li:before{content:"" counter(lst-ctn-kix_jpf3cr7xe1pc-3,dec imal) ". "}.lst-kix_7kmxmbi2lsws-4>li{counter-increment:lst-ctn-kix_7kmxmbi2lsws -4}ol.lst-kix_7kmxmbi2lsws-3.start{counter-reset:lst-ctn-kix_7kmxmbi2lsws-3 0}.l st-kix_2uog6ch44jpu-7>li:before{content:"" counter(lst-ctn-kix_2uog6ch44jpu-7,lo wer-latin) ". "}.lst-kix_4s9m9sikrtm7-6>li:before{content:"" counter(lst-ctn-kix _4s9m9sikrtm7-6,decimal) ". "}ol.lst-kix_9tkaqbe3bnu3-8.start{counter-reset:lst- ctn-kix_9tkaqbe3bnu3-8 0}ol.lst-kix_1gqf2s78t7o1-7.start{counter-reset:lst-ctn-k ix_1gqf2s78t7o1-7 0}ol.lst-kix_hm47sef7muk-1.start{counter-reset:lst-ctn-kix_hm4 7sef7muk-1 0}.lst-kix_fr6w5z45nvx0-8>li{counter-increment:lst-ctn-kix_fr6w5z45nv x0-8}.lst-kix_kf08e4mo0q15-4>li{counter-increment:lst-ctn-kix_kf08e4mo0q15-4}ol. lst-kix_pa6lflf2amnu-6.start{counter-reset:lst-ctn-kix_pa6lflf2amnu-6 0}ol.lst-k ix_oqqzpe3b3nud-7.start{counter-reset:lst-ctn-kix_oqqzpe3b3nud-7 0}ol.lst-kix_1c 0w7icorqz1-0{list-style-type:none}ol.lst-kix_1c0w7icorqz1-1{list-style-type:none }.lst-kix_57tjkabqizo2-0>li:before{content:"" counter(lst-ctn-kix_57tjkabqizo2-0 ,decimal) ". "}ol.lst-kix_1c0w7icorqz1-8{list-style-type:none}.lst-kix_sgsi64vug 03j-4>li{counter-increment:lst-ctn-kix_sgsi64vug03j-4}ol.lst-kix_1c0w7icorqz1-6{ list-style-type:none}ol.lst-kix_1c0w7icorqz1-7{list-style-type:none}.lst-kix_jun tnht2kzza-0>li{counter-increment:lst-ctn-kix_juntnht2kzza-0}ol.lst-kix_1c0w7icor qz1-4{list-style-type:none}ol.lst-kix_1c0w7icorqz1-5{list-style-type:none}ol.lst -kix_1c0w7icorqz1-2{list-style-type:none}ol.lst-kix_1c0w7icorqz1-3{list-style-ty pe:none}ol.lst-kix_p8a3u4ougab9-3.start{counter-reset:lst-ctn-kix_p8a3u4ougab9-3 0}.lst-kix_9tkaqbe3bnu3-0>li:before{content:"" counter(lst-ctn-kix_9tkaqbe3bnu3 -0,decimal) ". "}ol.lst-kix_ggm78fckav5h-3.start{counter-reset:lst-ctn-kix_ggm78 fckav5h-3 0}.lst-kix_jxeur1wnlj7y-2>li{counter-increment:lst-ctn-kix_jxeur1wnlj7 y-2}.lst-kix_pza3ybm1wtg3-6>li{counter-increment:lst-ctn-kix_pza3ybm1wtg3-6}.lst -kix_t9jkz28ln50j-8>li{counter-increment:lst-ctn-kix_t9jkz28ln50j-8}.lst-kix_1g0 xzctl1vi-2>li:before{content:"" counter(lst-ctn-kix_1g0xzctl1vi-2,lower-roman) " . "}ol.lst-kix_8dg0b92yw51r-3.start{counter-reset:lst-ctn-kix_8dg0b92yw51r-3 0}. lst-kix_ffvvlgzbuz30-0>li:before{content:"\0025cf "}.lst-kix_pza3ybm1wtg3-2>li{ counter-increment:lst-ctn-kix_pza3ybm1wtg3-2}.lst-kix_oqqzpe3b3nud-1>li{counter- increment:lst-ctn-kix_oqqzpe3b3nud-1}ol.lst-kix_1gqf2s78t7o1-0.start{counter-res et:lst-ctn-kix_1gqf2s78t7o1-0 0}.lst-kix_60g29afx0lof-2>li:before{content:"" cou nter(lst-ctn-kix_60g29afx0lof-2,lower-roman) ". "}ol.lst-kix_nho7sy6cpfv0-5.star t{counter-reset:lst-ctn-kix_nho7sy6cpfv0-5 0}ol.lst-kix_jpf3cr7xe1pc-1.start{cou nter-reset:lst-ctn-kix_jpf3cr7xe1pc-1 0}.lst-kix_1gqf2s78t7o1-6>li{counter-incre ment:lst-ctn-kix_1gqf2s78t7o1-6}.lst-kix_60g29afx0lof-3>li{counter-increment:lst -ctn-kix_60g29afx0lof-3}.lst-kix_nhaic9xr6pf-6>li:before{content:"" counter(lst- ctn-kix_nhaic9xr6pf-6,decimal) ". "}.lst-kix_q1b5wk7cmirb-2>li:before{content:"\ 0025a0 "}.lst-kix_8uscekru9dbw-6>li:before{content:"" counter(lst-ctn-kix_8usce kru9dbw-6,decimal) ". "}.lst-kix_pza3ybm1wtg3-6>li:before{content:"" counter(lst -ctn-kix_pza3ybm1wtg3-6,decimal) ". "}.lst-kix_jxeur1wnlj7y-3>li{counter-increme nt:lst-ctn-kix_jxeur1wnlj7y-3}.lst-kix_wzk0mdv2qg9u-7>li{counter-increment:lst-c tn-kix_wzk0mdv2qg9u-7}.lst-kix_opzlp0rjj486-1>li:before{content:"" counter(lst-c tn-kix_opzlp0rjj486-1,lower-latin) ". "}ol.lst-kix_qeukrmzdd856-5.start{counter- reset:lst-ctn-kix_qeukrmzdd856-5 0}.lst-kix_8uscekru9dbw-6>li{counter-increment: lst-ctn-kix_8uscekru9dbw-6}.lst-kix_pyiocxf7nngd-0>li{counter-increment:lst-ctn- kix_pyiocxf7nngd-0}.lst-kix_juntnht2kzza-1>li:before{content:"" counter(lst-ctn- kix_juntnht2kzza-1,lower-latin) ". "}.lst-kix_5f9palqqt4mm-4>li:before{content:" " counter(lst-ctn-kix_5f9palqqt4mm-4,lower-latin) ". "}ol.lst-kix_v454r7upbzuz-7 .start{counter-reset:lst-ctn-kix_v454r7upbzuz-7 0}.lst-kix_kc6aimw8pnra-2>li:bef ore{content:"\0025a0 "}.lst-kix_nho7sy6cpfv0-7>li:before{content:"" counter(lst -ctn-kix_nho7sy6cpfv0-7,lower-latin) ". "}ol.lst-kix_m8zky1oy6k60-0.start{counte r-reset:lst-ctn-kix_m8zky1oy6k60-0 0}.lst-kix_1gqf2s78t7o1-4>li:before{content:" " counter(lst-ctn-kix_1gqf2s78t7o1-4,lower-latin) ". "}.lst-kix_qeukrmzdd856-3>l i:before{content:"" counter(lst-ctn-kix_qeukrmzdd856-3,decimal) ". "}ol.lst-kix_ 7kmxmbi2lsws-5.start{counter-reset:lst-ctn-kix_7kmxmbi2lsws-5 0}.lst-kix_m1x0qze eadaz-4>li:before{content:"" counter(lst-ctn-kix_m1x0qzeeadaz-4,lower-latin) ". "}ol.lst-kix_kf08e4mo0q15-3.start{counter-reset:lst-ctn-kix_kf08e4mo0q15-3 0}.ls t-kix_z7in7d1ar2zt-6>li:before{content:"" counter(lst-ctn-kix_z7in7d1ar2zt-6,dec imal) ". "}ol.lst-kix_hvjet9voiiio-3.start{counter-reset:lst-ctn-kix_hvjet9voiii o-3 0}.lst-kix_vnvg10gwrc8t-4>li:before{content:"" counter(lst-ctn-kix_vnvg10gwr c8t-4,lower-latin) ". "}.lst-kix_juntnht2kzza-7>li:before{content:"" counter(lst -ctn-kix_juntnht2kzza-7,lower-latin) ". "}.lst-kix_ggm78fckav5h-7>li:before{cont ent:"" counter(lst-ctn-kix_ggm78fckav5h-7,lower-latin) ". "}.lst-kix_t7any4lo9ho q-2>li:before{content:"\0025a0 "}.lst-kix_kvgsl0s9rzo4-8>li{counter-increment:l st-ctn-kix_kvgsl0s9rzo4-8}ol.lst-kix_oqqzpe3b3nud-1.start{counter-reset:lst-ctn- kix_oqqzpe3b3nud-1 0}.lst-kix_nho7sy6cpfv0-1>li{counter-increment:lst-ctn-kix_nh o7sy6cpfv0-1}.lst-kix_1g0xzctl1vi-2>li{counter-increment:lst-ctn-kix_1g0xzctl1vi -2}.lst-kix_j51xhhtple7c-3>li:before{content:"" counter(lst-ctn-kix_j51xhhtple7c -3,decimal) ". "}.lst-kix_8dg0b92yw51r-5>li{counter-increment:lst-ctn-kix_8dg0b9 2yw51r-5}.lst-kix_vvzditg8sno-7>li:before{content:"\0025cb "}.lst-kix_8dg0b92yw 51r-0>li{counter-increment:lst-ctn-kix_8dg0b92yw51r-0}.lst-kix_3h1iswqv3l7s-2>li :before{content:"" counter(lst-ctn-kix_3h1iswqv3l7s-2,lower-roman) ". "}.lst-kix _pa6lflf2amnu-5>li{counter-increment:lst-ctn-kix_pa6lflf2amnu-5}.lst-kix_hm47sef 7muk-1>li:before{content:"" counter(lst-ctn-kix_hm47sef7muk-1,lower-latin) ". "} .lst-kix_32zxnvl59py3-1>li:before{content:"" counter(lst-ctn-kix_32zxnvl59py3-1, lower-latin) ". "}.lst-kix_oqqzpe3b3nud-7>li:before{content:"" counter(lst-ctn-k ix_oqqzpe3b3nud-7,lower-latin) ". "}.lst-kix_uq748w6pjv3r-3>li{counter-increment :lst-ctn-kix_uq748w6pjv3r-3}ol.lst-kix_qz5wp1hdd24k-3.start{counter-reset:lst-ct n-kix_qz5wp1hdd24k-3 0}ol.lst-kix_3h1iswqv3l7s-0.start{counter-reset:lst-ctn-kix _3h1iswqv3l7s-0 0}.lst-kix_ffvvlgzbuz30-8>li:before{content:"\0025a0 "}.lst-kix _lixznqbqiris-8>li{counter-increment:lst-ctn-kix_lixznqbqiris-8}ol.lst-kix_t9jkz 28ln50j-4.start{counter-reset:lst-ctn-kix_t9jkz28ln50j-4 0}.lst-kix_nhaic9xr6pf- 0>li:before{content:"" counter(lst-ctn-kix_nhaic9xr6pf-0,decimal) ". "}.lst-kix_ uq748w6pjv3r-6>li{counter-increment:lst-ctn-kix_uq748w6pjv3r-6}.lst-kix_3h1iswqv 3l7s-0>li:before{content:"" counter(lst-ctn-kix_3h1iswqv3l7s-0,decimal) ". "}ol. lst-kix_vnvg10gwrc8t-6.start{counter-reset:lst-ctn-kix_vnvg10gwrc8t-6 0}.lst-kix _hvjet9voiiio-6>li:before{content:"" counter(lst-ctn-kix_hvjet9voiiio-6,decimal) ". "}ul.lst-kix_a4uqy1hx9g3-4{list-style-type:none}ul.lst-kix_a4uqy1hx9g3-3{lis t-style-type:none}ul.lst-kix_a4uqy1hx9g3-6{list-style-type:none}ul.lst-kix_a4uqy 1hx9g3-5{list-style-type:none}ul.lst-kix_a4uqy1hx9g3-8{list-style-type:none}.lst -kix_hvjet9voiiio-0>li{counter-increment:lst-ctn-kix_hvjet9voiiio-0}ul.lst-kix_a 4uqy1hx9g3-7{list-style-type:none}.lst-kix_v454r7upbzuz-4>li:before{content:"" c ounter(lst-ctn-kix_v454r7upbzuz-4,lower-latin) ". "}ol.lst-kix_z7in7d1ar2zt-4.st art{counter-reset:lst-ctn-kix_z7in7d1ar2zt-4 0}ul.lst-kix_a4uqy1hx9g3-0{list-sty le-type:none}.lst-kix_57tjkabqizo2-8>li{counter-increment:lst-ctn-kix_57tjkabqiz o2-8}ol.lst-kix_opzlp0rjj486-8.start{counter-reset:lst-ctn-kix_opzlp0rjj486-8 0} .lst-kix_ggm78fckav5h-8>li{counter-increment:lst-ctn-kix_ggm78fckav5h-8}ul.lst-k ix_a4uqy1hx9g3-2{list-style-type:none}ul.lst-kix_a4uqy1hx9g3-1{list-style-type:n one}.lst-kix_i2v077rod1nx-2>li:before{content:"\0025a0 "}ol.lst-kix_fr6w5z45nvx 0-3.start{counter-reset:lst-ctn-kix_fr6w5z45nvx0-3 0}ol.lst-kix_2uog6ch44jpu-7.s tart{counter-reset:lst-ctn-kix_2uog6ch44jpu-7 0}ol.lst-kix_j51xhhtple7c-2.start{ counter-reset:lst-ctn-kix_j51xhhtple7c-2 0}.lst-kix_qz5wp1hdd24k-4>li{counter-in crement:lst-ctn-kix_qz5wp1hdd24k-4}.lst-kix_nhaic9xr6pf-5>li:before{content:"" c ounter(lst-ctn-kix_nhaic9xr6pf-5,lower-roman) ". "}ol.lst-kix_ggm78fckav5h-1.sta rt{counter-reset:lst-ctn-kix_ggm78fckav5h-1 0}ol.lst-kix_juntnht2kzza-5.start{co unter-reset:lst-ctn-kix_juntnht2kzza-5 0}.lst-kix_wzk0mdv2qg9u-1>li:before{conte nt:"" counter(lst-ctn-kix_wzk0mdv2qg9u-1,lower-latin) ". "}.lst-kix_8uscekru9dbw -7>li{counter-increment:lst-ctn-kix_8uscekru9dbw-7}ol.lst-kix_vnvg10gwrc8t-3.sta rt{counter-reset:lst-ctn-kix_vnvg10gwrc8t-3 0}.lst-kix_fr6w5z45nvx0-0>li:before{ content:"" counter(lst-ctn-kix_fr6w5z45nvx0-0,decimal) ". "}ol.lst-kix_2uog6ch44 jpu-8{list-style-type:none}ol.lst-kix_2uog6ch44jpu-2{list-style-type:none}ol.lst -kix_2uog6ch44jpu-3{list-style-type:none}ol.lst-kix_2uog6ch44jpu-0{list-style-ty pe:none}ol.lst-kix_2uog6ch44jpu-1{list-style-type:none}ol.lst-kix_2uog6ch44jpu-6 {list-style-type:none}ol.lst-kix_2uog6ch44jpu-7{list-style-type:none}ol.lst-kix_ 2uog6ch44jpu-4{list-style-type:none}.lst-kix_hvjet9voiiio-1>li{counter-increment :lst-ctn-kix_hvjet9voiiio-1}ol.lst-kix_2uog6ch44jpu-5{list-style-type:none}ol.ls t-kix_1c0w7icorqz1-5.start{counter-reset:lst-ctn-kix_1c0w7icorqz1-5 0}.lst-kix_f r6w5z45nvx0-6>li{counter-increment:lst-ctn-kix_fr6w5z45nvx0-6}ol.lst-kix_pa6lflf 2amnu-7.start{counter-reset:lst-ctn-kix_pa6lflf2amnu-7 0}.lst-kix_8uscekru9dbw-5 >li{counter-increment:lst-ctn-kix_8uscekru9dbw-5}ol.lst-kix_pyiocxf7nngd-7.start {counter-reset:lst-ctn-kix_pyiocxf7nngd-7 0}.lst-kix_fr6w5z45nvx0-7>li:before{co ntent:"" counter(lst-ctn-kix_fr6w5z45nvx0-7,lower-latin) ". "}.lst-kix_60g29afx0 lof-7>li{counter-increment:lst-ctn-kix_60g29afx0lof-7}ol.lst-kix_nho7sy6cpfv0-8. start{counter-reset:lst-ctn-kix_nho7sy6cpfv0-8 0}ol.lst-kix_v454r7upbzuz-4{list- style-type:none}.lst-kix_bnpbicbhbbru-5>li:before{content:"\0025a0 "}ol.lst-kix _v454r7upbzuz-3{list-style-type:none}ol.lst-kix_v454r7upbzuz-2{list-style-type:n one}ol.lst-kix_v454r7upbzuz-1{list-style-type:none}.lst-kix_vvzditg8sno-1>li:bef ore{content:"\0025cb "}ol.lst-kix_v454r7upbzuz-0{list-style-type:none}.lst-kix_ j51xhhtple7c-1>li:before{content:"" counter(lst-ctn-kix_j51xhhtple7c-1,lower-lat in) ". "}.lst-kix_qz5wp1hdd24k-0>li{counter-increment:lst-ctn-kix_qz5wp1hdd24k-0 }ol.lst-kix_v454r7upbzuz-8{list-style-type:none}ol.lst-kix_v454r7upbzuz-7{list-s tyle-type:none}ol.lst-kix_v454r7upbzuz-6{list-style-type:none}ol.lst-kix_v454r7u pbzuz-5{list-style-type:none}.lst-kix_sgsi64vug03j-5>li:before{content:"" counte r(lst-ctn-kix_sgsi64vug03j-5,lower-roman) ". "}.lst-kix_kf08e4mo0q15-2>li:before {content:"" counter(lst-ctn-kix_kf08e4mo0q15-2,lower-roman) ". "}.lst-kix_kvgsl0 s9rzo4-6>li:before{content:"" counter(lst-ctn-kix_kvgsl0s9rzo4-6,decimal) ". "}. lst-kix_1c0w7icorqz1-1>li{counter-increment:lst-ctn-kix_1c0w7icorqz1-1}.lst-kix_ sgsi64vug03j-7>li{counter-increment:lst-ctn-kix_sgsi64vug03j-7}ol.lst-kix_jxeur1 wnlj7y-8.start{counter-reset:lst-ctn-kix_jxeur1wnlj7y-8 0}.lst-kix_57tjkabqizo2- 3>li{counter-increment:lst-ctn-kix_57tjkabqizo2-3}.lst-kix_pza3ybm1wtg3-2>li:bef ore{content:"" counter(lst-ctn-kix_pza3ybm1wtg3-2,lower-roman) ". "}.lst-kix_pyi ocxf7nngd-6>li:before{content:"" counter(lst-ctn-kix_pyiocxf7nngd-6,decimal) ". "}.lst-kix_jpf3cr7xe1pc-1>li{counter-increment:lst-ctn-kix_jpf3cr7xe1pc-1}.lst-k ix_jzpgxqq6fzzf-0>li{counter-increment:lst-ctn-kix_jzpgxqq6fzzf-0}ol.lst-kix_pa6 lflf2amnu-5.start{counter-reset:lst-ctn-kix_pa6lflf2amnu-5 0}.lst-kix_jxeur1wnlj 7y-1>li{counter-increment:lst-ctn-kix_jxeur1wnlj7y-1}.lst-kix_pza3ybm1wtg3-4>li: before{content:"" counter(lst-ctn-kix_pza3ybm1wtg3-4,lower-latin) ". "}ol.lst-ki x_57tjkabqizo2-1.start{counter-reset:lst-ctn-kix_57tjkabqizo2-1 0}.lst-kix_jzpgx qq6fzzf-2>li:before{content:"" counter(lst-ctn-kix_jzpgxqq6fzzf-2,lower-roman) " . "}.lst-kix_vnvg10gwrc8t-2>li:before{content:"" counter(lst-ctn-kix_vnvg10gwrc8 t-2,lower-roman) ". "}.lst-kix_lixznqbqiris-3>li{counter-increment:lst-ctn-kix_l ixznqbqiris-3}.lst-kix_sgsi64vug03j-6>li:before{content:"" counter(lst-ctn-kix_s gsi64vug03j-6,decimal) ". "}ol.lst-kix_60g29afx0lof-3.start{counter-reset:lst-ct n-kix_60g29afx0lof-3 0}ol.lst-kix_57tjkabqizo2-0.start{counter-reset:lst-ctn-kix _57tjkabqizo2-0 0}ol.lst-kix_oqqzpe3b3nud-8.start{counter-reset:lst-ctn-kix_oqqz pe3b3nud-8 0}.lst-kix_fpxsljpyl73u-1>li:before{content:"\0025cb "}.lst-kix_5f9p alqqt4mm-2>li:before{content:"" counter(lst-ctn-kix_5f9palqqt4mm-2,lower-roman) ". "}ol.lst-kix_v454r7upbzuz-3.start{counter-reset:lst-ctn-kix_v454r7upbzuz-3 0} ol.lst-kix_wzk0mdv2qg9u-1.start{counter-reset:lst-ctn-kix_wzk0mdv2qg9u-1 0}ol.ls t-kix_1c0w7icorqz1-1.start{counter-reset:lst-ctn-kix_1c0w7icorqz1-1 0}.lst-kix_k f08e4mo0q15-5>li:before{content:"" counter(lst-ctn-kix_kf08e4mo0q15-5,lower-roma n) ". "}.lst-kix_7kmxmbi2lsws-1>li:before{content:"" counter(lst-ctn-kix_7kmxmbi 2lsws-1,lower-latin) ". "}.lst-kix_kvgsl0s9rzo4-7>li{counter-increment:lst-ctn-k ix_kvgsl0s9rzo4-7}ul.lst-kix_bnpbicbhbbru-8{list-style-type:none}.lst-kix_oqqzpe 3b3nud-2>li{counter-increment:lst-ctn-kix_oqqzpe3b3nud-2}.lst-kix_1c0w7icorqz1-3 >li:before{content:"" counter(lst-ctn-kix_1c0w7icorqz1-3,decimal) ". "}ul.lst-ki x_bnpbicbhbbru-0{list-style-type:none}ol.lst-kix_nhaic9xr6pf-5.start{counter-res et:lst-ctn-kix_nhaic9xr6pf-5 0}ul.lst-kix_bnpbicbhbbru-1{list-style-type:none}ol .lst-kix_pa6lflf2amnu-0.start{counter-reset:lst-ctn-kix_pa6lflf2amnu-0 0}ul.lst- kix_bnpbicbhbbru-2{list-style-type:none}ul.lst-kix_bnpbicbhbbru-3{list-style-typ e:none}ul.lst-kix_bnpbicbhbbru-4{list-style-type:none}ul.lst-kix_bnpbicbhbbru-5{ list-style-type:none}.lst-kix_p8a3u4ougab9-2>li:before{content:"" counter(lst-ct n-kix_p8a3u4ougab9-2,lower-roman) ". "}ul.lst-kix_bnpbicbhbbru-6{list-style-type :none}ul.lst-kix_bnpbicbhbbru-7{list-style-type:none}.lst-kix_v454r7upbzuz-0>li{ counter-increment:lst-ctn-kix_v454r7upbzuz-0}ol.lst-kix_juntnht2kzza-7.start{cou nter-reset:lst-ctn-kix_juntnht2kzza-7 0}.lst-kix_j51xhhtple7c-4>li{counter-incre ment:lst-ctn-kix_j51xhhtple7c-4}.lst-kix_lgtbofvz5zxd-6>li{counter-increment:lst -ctn-kix_lgtbofvz5zxd-6}.lst-kix_j51xhhtple7c-6>li:before{content:"" counter(lst -ctn-kix_j51xhhtple7c-6,decimal) ". "}ol.lst-kix_ggm78fckav5h-0.start{counter-re set:lst-ctn-kix_ggm78fckav5h-0 0}.lst-kix_pa6lflf2amnu-2>li{counter-increment:ls t-ctn-kix_pa6lflf2amnu-2}.lst-kix_1g0xzctl1vi-7>li{counter-increment:lst-ctn-kix _1g0xzctl1vi-7}ol.lst-kix_dblgil8t24zy-6.start{counter-reset:lst-ctn-kix_dblgil8 t24zy-6 0}.lst-kix_lixznqbqiris-1>li{counter-increment:lst-ctn-kix_lixznqbqiris- 1}ol.lst-kix_wzk0mdv2qg9u-0.start{counter-reset:lst-ctn-kix_wzk0mdv2qg9u-0 0}.ls t-kix_hm47sef7muk-3>li{counter-increment:lst-ctn-kix_hm47sef7muk-3}.lst-kix_t7an y4lo9hoq-0>li:before{content:"\0025cf "}.lst-kix_kf08e4mo0q15-1>li{counter-incr ement:lst-ctn-kix_kf08e4mo0q15-1}.lst-kix_hm47sef7muk-5>li:before{content:"" cou nter(lst-ctn-kix_hm47sef7muk-5,lower-roman) ". "}.lst-kix_7kmxmbi2lsws-0>li{coun ter-increment:lst-ctn-kix_7kmxmbi2lsws-0}.lst-kix_7kmxmbi2lsws-5>li{counter-incr ement:lst-ctn-kix_7kmxmbi2lsws-5}.lst-kix_vnvg10gwrc8t-8>li:before{content:"" co unter(lst-ctn-kix_vnvg10gwrc8t-8,lower-roman) ". "}.lst-kix_hvjet9voiiio-0>li:be fore{content:"" counter(lst-ctn-kix_hvjet9voiiio-0,decimal) ". "}ol.lst-kix_p8a3 u4ougab9-0.start{counter-reset:lst-ctn-kix_p8a3u4ougab9-0 0}.lst-kix_2uog6ch44jp u-2>li{counter-increment:lst-ctn-kix_2uog6ch44jpu-2}ol.lst-kix_uq748w6pjv3r-1.st art{counter-reset:lst-ctn-kix_uq748w6pjv3r-1 0}.lst-kix_fpxsljpyl73u-8>li:before {content:"\0025a0 "}ol.lst-kix_oqqzpe3b3nud-0.start{counter-reset:lst-ctn-kix_o qqzpe3b3nud-0 0}.lst-kix_v454r7upbzuz-8>li{counter-increment:lst-ctn-kix_v454r7u pbzuz-8}.lst-kix_8dg0b92yw51r-2>li:before{content:"" counter(lst-ctn-kix_8dg0b92 yw51r-2,lower-roman) ". "}.lst-kix_fr6w5z45nvx0-5>li{counter-increment:lst-ctn-k ix_fr6w5z45nvx0-5}.lst-kix_2uog6ch44jpu-3>li{counter-increment:lst-ctn-kix_2uog6 ch44jpu-3}ol.lst-kix_jxeur1wnlj7y-5.start{counter-reset:lst-ctn-kix_jxeur1wnlj7y -5 0}ol.lst-kix_8uscekru9dbw-0.start{counter-reset:lst-ctn-kix_8uscekru9dbw-0 0} .lst-kix_4s9m9sikrtm7-8>li{counter-increment:lst-ctn-kix_4s9m9sikrtm7-8}.lst-kix _9tkaqbe3bnu3-5>li{counter-increment:lst-ctn-kix_9tkaqbe3bnu3-5}.lst-kix_60g29af x0lof-4>li:before{content:"" counter(lst-ctn-kix_60g29afx0lof-4,lower-latin) ". "}ol.lst-kix_fr6w5z45nvx0-0.start{counter-reset:lst-ctn-kix_fr6w5z45nvx0-0 0}ol. lst-kix_1gqf2s78t7o1-3.start{counter-reset:lst-ctn-kix_1gqf2s78t7o1-3 0}.lst-kix _z7in7d1ar2zt-2>li:before{content:"" counter(lst-ctn-kix_z7in7d1ar2zt-2,lower-ro man) ". "}.lst-kix_hm47sef7muk-1>li{counter-increment:lst-ctn-kix_hm47sef7muk-1} .lst-kix_p8a3u4ougab9-5>li{counter-increment:lst-ctn-kix_p8a3u4ougab9-5}.lst-kix _iqyc5gy523tq-8>li:before{content:"\0025a0 "}ol.lst-kix_wzk0mdv2qg9u-7.start{co unter-reset:lst-ctn-kix_wzk0mdv2qg9u-7 0}.lst-kix_fr6w5z45nvx0-2>li:before{conte nt:"" counter(lst-ctn-kix_fr6w5z45nvx0-2,lower-roman) ". "}ol.lst-kix_1g0xzctl1v i-5.start{counter-reset:lst-ctn-kix_1g0xzctl1vi-5 0}ol.lst-kix_57tjkabqizo2-2.st art{counter-reset:lst-ctn-kix_57tjkabqizo2-2 0}ul.lst-kix_i2v077rod1nx-8{list-st yle-type:none}.lst-kix_nho7sy6cpfv0-0>li:before{content:"" counter(lst-ctn-kix_n ho7sy6cpfv0-0,decimal) ". "}ul.lst-kix_i2v077rod1nx-6{list-style-type:none}ul.ls t-kix_i2v077rod1nx-7{list-style-type:none}.lst-kix_z7in7d1ar2zt-3>li{counter-inc rement:lst-ctn-kix_z7in7d1ar2zt-3}ul.lst-kix_i2v077rod1nx-4{list-style-type:none }ul.lst-kix_i2v077rod1nx-5{list-style-type:none}ol.lst-kix_hm47sef7muk-7.start{c ounter-reset:lst-ctn-kix_hm47sef7muk-7 0}ul.lst-kix_i2v077rod1nx-2{list-style-ty pe:none}ul.lst-kix_i2v077rod1nx-3{list-style-type:none}ol.lst-kix_t9jkz28ln50j-8 .start{counter-reset:lst-ctn-kix_t9jkz28ln50j-8 0}ul.lst-kix_i2v077rod1nx-0{list -style-type:none}ul.lst-kix_i2v077rod1nx-1{list-style-type:none}.lst-kix_uq748w6 pjv3r-1>li:before{content:"" counter(lst-ctn-kix_uq748w6pjv3r-1,lower-latin) ". "}.lst-kix_4s9m9sikrtm7-0>li:before{content:"" counter(lst-ctn-kix_4s9m9sikrtm7- 0,decimal) ". "}ol.lst-kix_1g0xzctl1vi-2.start{counter-reset:lst-ctn-kix_1g0xzct l1vi-2 0}ol.lst-kix_jpf3cr7xe1pc-7.start{counter-reset:lst-ctn-kix_jpf3cr7xe1pc- 7 0}.lst-kix_kvgsl0s9rzo4-3>li{counter-increment:lst-ctn-kix_kvgsl0s9rzo4-3}.lst -kix_32zxnvl59py3-7>li:before{content:"" counter(lst-ctn-kix_32zxnvl59py3-7,lowe r-latin) ". "}ol.lst-kix_qz5wp1hdd24k-5.start{counter-reset:lst-ctn-kix_qz5wp1hd d24k-5 0}ol.lst-kix_dblgil8t24zy-2.start{counter-reset:lst-ctn-kix_dblgil8t24zy- 2 0}ol.lst-kix_kf08e4mo0q15-6{list-style-type:none}ol.lst-kix_kf08e4mo0q15-7{lis t-style-type:none}ol.lst-kix_kf08e4mo0q15-8{list-style-type:none}ol.lst-kix_kf08 e4mo0q15-2{list-style-type:none}ol.lst-kix_kf08e4mo0q15-3{list-style-type:none}o l.lst-kix_kf08e4mo0q15-4{list-style-type:none}ol.lst-kix_8uscekru9dbw-2.start{co unter-reset:lst-ctn-kix_8uscekru9dbw-2 0}ol.lst-kix_kf08e4mo0q15-5{list-style-ty pe:none}.lst-kix_m8zky1oy6k60-8>li{counter-increment:lst-ctn-kix_m8zky1oy6k60-8} .lst-kix_q1b5wk7cmirb-4>li:before{content:"\0025cb "}.lst-kix_i2v077rod1nx-8>li :before{content:"\0025a0 "}ol.lst-kix_kf08e4mo0q15-0{list-style-type:none}ol.ls t-kix_kf08e4mo0q15-1{list-style-type:none}.lst-kix_ggm78fckav5h-3>li{counter-inc rement:lst-ctn-kix_ggm78fckav5h-3}.lst-kix_jzpgxqq6fzzf-6>li:before{content:"" c ounter(lst-ctn-kix_jzpgxqq6fzzf-6,decimal) ". "}.lst-kix_1gqf2s78t7o1-8>li{count er-increment:lst-ctn-kix_1gqf2s78t7o1-8}.lst-kix_j51xhhtple7c-1>li{counter-incre ment:lst-ctn-kix_j51xhhtple7c-1}ol.lst-kix_juntnht2kzza-0.start{counter-reset:ls t-ctn-kix_juntnht2kzza-0 0}.lst-kix_dblgil8t24zy-1>li:before{content:"" counter( lst-ctn-kix_dblgil8t24zy-1,lower-latin) ". "}ol.lst-kix_qz5wp1hdd24k-0{list-styl e-type:none}ol.lst-kix_sgsi64vug03j-7.start{counter-reset:lst-ctn-kix_sgsi64vug0 3j-7 0}ol.lst-kix_qz5wp1hdd24k-1{list-style-type:none}ol.lst-kix_qz5wp1hdd24k-2{ list-style-type:none}ol.lst-kix_jzpgxqq6fzzf-8.start{counter-reset:lst-ctn-kix_j zpgxqq6fzzf-8 0}ol.lst-kix_qz5wp1hdd24k-3{list-style-type:none}ol.lst-kix_qz5wp1 hdd24k-4{list-style-type:none}ol.lst-kix_qz5wp1hdd24k-5{list-style-type:none}.ls t-kix_nho7sy6cpfv0-5>li:before{content:"" counter(lst-ctn-kix_nho7sy6cpfv0-5,low er-roman) ". "}ol.lst-kix_qz5wp1hdd24k-6{list-style-type:none}ol.lst-kix_qz5wp1h dd24k-7{list-style-type:none}.lst-kix_pa6lflf2amnu-8>li:before{content:"" counte r(lst-ctn-kix_pa6lflf2amnu-8,lower-roman) ". "}ol.lst-kix_qz5wp1hdd24k-8{list-st yle-type:none}.lst-kix_kvgsl0s9rzo4-2>li:before{content:"" counter(lst-ctn-kix_k vgsl0s9rzo4-2,lower-roman) ". "}ol.lst-kix_1c0w7icorqz1-4.start{counter-reset:ls t-ctn-kix_1c0w7icorqz1-4 0}.lst-kix_vnvg10gwrc8t-1>li{counter-increment:lst-ctn- kix_vnvg10gwrc8t-1}.lst-kix_opzlp0rjj486-7>li{counter-increment:lst-ctn-kix_opzl p0rjj486-7}.lst-kix_8dg0b92yw51r-4>li{counter-increment:lst-ctn-kix_8dg0b92yw51r -4}.lst-kix_8uscekru9dbw-2>li{counter-increment:lst-ctn-kix_8uscekru9dbw-2}ol.ls t-kix_3h1iswqv3l7s-3{list-style-type:none}ol.lst-kix_pza3ybm1wtg3-4.start{counte r-reset:lst-ctn-kix_pza3ybm1wtg3-4 0}ol.lst-kix_3h1iswqv3l7s-2{list-style-type:n one}ol.lst-kix_oqqzpe3b3nud-8{list-style-type:none}ol.lst-kix_3h1iswqv3l7s-1{lis t-style-type:none}ol.lst-kix_oqqzpe3b3nud-7{list-style-type:none}ol.lst-kix_3h1i swqv3l7s-0{list-style-type:none}ol.lst-kix_oqqzpe3b3nud-6{list-style-type:none}. lst-kix_sgsi64vug03j-7>li:before{content:"" counter(lst-ctn-kix_sgsi64vug03j-7,l ower-latin) ". "}ol.lst-kix_oqqzpe3b3nud-1{list-style-type:none}.lst-kix_3h1iswq v3l7s-7>li{counter-increment:lst-ctn-kix_3h1iswqv3l7s-7}ol.lst-kix_oqqzpe3b3nud- 0{list-style-type:none}ol.lst-kix_3h1iswqv3l7s-8{list-style-type:none}ol.lst-kix _jpf3cr7xe1pc-0.start{counter-reset:lst-ctn-kix_jpf3cr7xe1pc-0 0}ol.lst-kix_3h1i swqv3l7s-7{list-style-type:none}ol.lst-kix_oqqzpe3b3nud-5{list-style-type:none}o l.lst-kix_3h1iswqv3l7s-6{list-style-type:none}ol.lst-kix_9tkaqbe3bnu3-0.start{co unter-reset:lst-ctn-kix_9tkaqbe3bnu3-0 0}ol.lst-kix_oqqzpe3b3nud-4{list-style-ty pe:none}.lst-kix_3h1iswqv3l7s-7>li:before{content:"" counter(lst-ctn-kix_3h1iswq v3l7s-7,lower-latin) ". "}ol.lst-kix_3h1iswqv3l7s-5{list-style-type:none}ol.lst- kix_oqqzpe3b3nud-3{list-style-type:none}ol.lst-kix_3h1iswqv3l7s-4{list-style-typ e:none}ol.lst-kix_oqqzpe3b3nud-2{list-style-type:none}.lst-kix_ffvvlgzbuz30-6>li :before{content:"\0025cf "}.lst-kix_pza3ybm1wtg3-0>li:before{content:"" counter (lst-ctn-kix_pza3ybm1wtg3-0,decimal) ". "}ol.lst-kix_qeukrmzdd856-6.start{counte r-reset:lst-ctn-kix_qeukrmzdd856-6 0}.lst-kix_jzpgxqq6fzzf-8>li:before{content:" " counter(lst-ctn-kix_jzpgxqq6fzzf-8,lower-roman) ". "}.lst-kix_kf08e4mo0q15-2>l i{counter-increment:lst-ctn-kix_kf08e4mo0q15-2}.lst-kix_kvgsl0s9rzo4-5>li:before {content:"" counter(lst-ctn-kix_kvgsl0s9rzo4-5,lower-roman) ". "}ol.lst-kix_57tj kabqizo2-8.start{counter-reset:lst-ctn-kix_57tjkabqizo2-8 0}.lst-kix_jzpgxqq6fzz f-4>li{counter-increment:lst-ctn-kix_jzpgxqq6fzzf-4}.lst-kix_3h1iswqv3l7s-3>li:b efore{content:"" counter(lst-ctn-kix_3h1iswqv3l7s-3,decimal) ". "}.lst-kix_lixzn qbqiris-6>li{counter-increment:lst-ctn-kix_lixznqbqiris-6}.lst-kix_8uscekru9dbw- 1>li:before{content:"" counter(lst-ctn-kix_8uscekru9dbw-1,lower-latin) ". "}ol.l st-kix_kvgsl0s9rzo4-6.start{counter-reset:lst-ctn-kix_kvgsl0s9rzo4-6 0}ol.lst-ki x_m1x0qzeeadaz-5.start{counter-reset:lst-ctn-kix_m1x0qzeeadaz-5 0}ol.lst-kix_fr6 w5z45nvx0-5.start{counter-reset:lst-ctn-kix_fr6w5z45nvx0-5 0}ol.lst-kix_jpf3cr7x e1pc-6.start{counter-reset:lst-ctn-kix_jpf3cr7xe1pc-6 0}ol.lst-kix_wzk0mdv2qg9u- 4.start{counter-reset:lst-ctn-kix_wzk0mdv2qg9u-4 0}.lst-kix_2uog6ch44jpu-6>li{co unter-increment:lst-ctn-kix_2uog6ch44jpu-6}.lst-kix_8dg0b92yw51r-7>li:before{con tent:"" counter(lst-ctn-kix_8dg0b92yw51r-7,lower-latin) ". "}.lst-kix_p8a3u4ouga b9-4>li{counter-increment:lst-ctn-kix_p8a3u4ougab9-4}.lst-kix_sgsi64vug03j-0>li{ counter-increment:lst-ctn-kix_sgsi64vug03j-0}.lst-kix_m1x0qzeeadaz-2>li:before{c ontent:"" counter(lst-ctn-kix_m1x0qzeeadaz-2,lower-roman) ". "}.lst-kix_p8a3u4ou gab9-0>li{counter-increment:lst-ctn-kix_p8a3u4ougab9-0}.lst-kix_jzpgxqq6fzzf-1>l i:before{content:"" counter(lst-ctn-kix_jzpgxqq6fzzf-1,lower-latin) ". "}.lst-ki x_4s9m9sikrtm7-3>li:before{content:"" counter(lst-ctn-kix_4s9m9sikrtm7-3,decimal ) ". "}.lst-kix_z7in7d1ar2zt-7>li:before{content:"" counter(lst-ctn-kix_z7in7d1a r2zt-7,lower-latin) ". "}ol.lst-kix_2uog6ch44jpu-6.start{counter-reset:lst-ctn-k ix_2uog6ch44jpu-6 0}.lst-kix_sgsi64vug03j-1>li:before{content:"" counter(lst-ctn -kix_sgsi64vug03j-1,lower-latin) ". "}ol.lst-kix_qz5wp1hdd24k-0.start{counter-re set:lst-ctn-kix_qz5wp1hdd24k-0 0}.lst-kix_lgtbofvz5zxd-1>li{counter-increment:ls t-ctn-kix_lgtbofvz5zxd-1}.lst-kix_sgsi64vug03j-4>li:before{content:"" counter(ls t-ctn-kix_sgsi64vug03j-4,lower-latin) ". "}.lst-kix_dblgil8t24zy-2>li:before{con tent:"" counter(lst-ctn-kix_dblgil8t24zy-2,lower-roman) ". "}ol.lst-kix_hvjet9vo iiio-1.start{counter-reset:lst-ctn-kix_hvjet9voiiio-1 0}.lst-kix_qz5wp1hdd24k-7> li:before{content:"" counter(lst-ctn-kix_qz5wp1hdd24k-7,lower-latin) ". "}ol.lst -kix_m8zky1oy6k60-1.start{counter-reset:lst-ctn-kix_m8zky1oy6k60-1 0}.lst-kix_p8 a3u4ougab9-0>li:before{content:"" counter(lst-ctn-kix_p8a3u4ougab9-0,decimal) ". "}.lst-kix_1c0w7icorqz1-4>li{counter-increment:lst-ctn-kix_1c0w7icorqz1-4}ol.ls t-kix_v454r7upbzuz-1.start{counter-reset:lst-ctn-kix_v454r7upbzuz-1 0}.lst-kix_j pf3cr7xe1pc-2>li{counter-increment:lst-ctn-kix_jpf3cr7xe1pc-2}.lst-kix_2uog6ch44 jpu-2>li:before{content:"" counter(lst-ctn-kix_2uog6ch44jpu-2,lower-roman) ". "} .lst-kix_3h1iswqv3l7s-8>li:before{content:"" counter(lst-ctn-kix_3h1iswqv3l7s-8, lower-roman) ". "}.lst-kix_pa6lflf2amnu-6>li:before{content:"" counter(lst-ctn-k ix_pa6lflf2amnu-6,decimal) ". "}.lst-kix_32zxnvl59py3-0>li:before{content:"" cou nter(lst-ctn-kix_32zxnvl59py3-0,decimal) ". "}.lst-kix_qeukrmzdd856-4>li{counter -increment:lst-ctn-kix_qeukrmzdd856-4}.lst-kix_q1b5wk7cmirb-8>li:before{content: "\0025a0 "}.lst-kix_m8zky1oy6k60-7>li{counter-increment:lst-ctn-kix_m8zky1oy6k6 0-7}.lst-kix_kf08e4mo0q15-6>li:before{content:"" counter(lst-ctn-kix_kf08e4mo0q1 5-6,decimal) ". "}ol.lst-kix_hvjet9voiiio-7.start{counter-reset:lst-ctn-kix_hvje t9voiiio-7 0}.lst-kix_vnvg10gwrc8t-2>li{counter-increment:lst-ctn-kix_vnvg10gwrc 8t-2}.lst-kix_kf08e4mo0q15-3>li{counter-increment:lst-ctn-kix_kf08e4mo0q15-3}.ls t-kix_1gqf2s78t7o1-7>li:before{content:"" counter(lst-ctn-kix_1gqf2s78t7o1-7,low er-latin) ". "}.lst-kix_z7in7d1ar2zt-4>li:before{content:"" counter(lst-ctn-kix_ z7in7d1ar2zt-4,lower-latin) ". "}ol.lst-kix_t9jkz28ln50j-1.start{counter-reset:l st-ctn-kix_t9jkz28ln50j-1 0}.lst-kix_7kmxmbi2lsws-8>li:before{content:"" counter (lst-ctn-kix_7kmxmbi2lsws-8,lower-roman) ". "}ol.lst-kix_m1x0qzeeadaz-3.start{co unter-reset:lst-ctn-kix_m1x0qzeeadaz-3 0}.lst-kix_pa6lflf2amnu-3>li:before{conte nt:"" counter(lst-ctn-kix_pa6lflf2amnu-3,decimal) ". "}.lst-kix_dblgil8t24zy-7>l i:before{content:"" counter(lst-ctn-kix_dblgil8t24zy-7,lower-latin) ". "}.lst-ki x_dblgil8t24zy-8>li{counter-increment:lst-ctn-kix_dblgil8t24zy-8}ol.lst-kix_sgsi 64vug03j-5.start{counter-reset:lst-ctn-kix_sgsi64vug03j-5 0}.lst-kix_m1x0qzeeada z-7>li:before{content:"" counter(lst-ctn-kix_m1x0qzeeadaz-7,lower-latin) ". "}.l st-kix_2uog6ch44jpu-8>li{counter-increment:lst-ctn-kix_2uog6ch44jpu-8}.lst-kix_p yiocxf7nngd-8>li{counter-increment:lst-ctn-kix_pyiocxf7nngd-8}.lst-kix_4s9m9sikr tm7-3>li{counter-increment:lst-ctn-kix_4s9m9sikrtm7-3}.lst-kix_vnvg10gwrc8t-7>li :before{content:"" counter(lst-ctn-kix_vnvg10gwrc8t-7,lower-latin) ". "}.lst-kix _pyiocxf7nngd-3>li{counter-increment:lst-ctn-kix_pyiocxf7nngd-3}.lst-kix_8dg0b92 yw51r-7>li{counter-increment:lst-ctn-kix_8dg0b92yw51r-7}.lst-kix_4s9m9sikrtm7-0> li{counter-increment:lst-ctn-kix_4s9m9sikrtm7-0}ol.lst-kix_kf08e4mo0q15-2.start{ counter-reset:lst-ctn-kix_kf08e4mo0q15-2 0}.lst-kix_t9jkz28ln50j-6>li{counter-in crement:lst-ctn-kix_t9jkz28ln50j-6}.lst-kix_uq748w6pjv3r-8>li{counter-increment: lst-ctn-kix_uq748w6pjv3r-8}.lst-kix_m1x0qzeeadaz-8>li:before{content:"" counter( lst-ctn-kix_m1x0qzeeadaz-8,lower-roman) ". "}.lst-kix_pa6lflf2amnu-2>li:before{c ontent:"" counter(lst-ctn-kix_pa6lflf2amnu-2,lower-roman) ". "}ol.lst-kix_p8a3u4 ougab9-2.start{counter-reset:lst-ctn-kix_p8a3u4ougab9-2 0}.lst-kix_pza3ybm1wtg3- 0>li{counter-increment:lst-ctn-kix_pza3ybm1wtg3-0}.lst-kix_qz5wp1hdd24k-8>li{cou nter-increment:lst-ctn-kix_qz5wp1hdd24k-8}.lst-kix_hvjet9voiiio-8>li{counter-inc rement:lst-ctn-kix_hvjet9voiiio-8}.lst-kix_9tkaqbe3bnu3-2>li{counter-increment:l st-ctn-kix_9tkaqbe3bnu3-2}.lst-kix_qz5wp1hdd24k-8>li:before{content:"" counter(l st-ctn-kix_qz5wp1hdd24k-8,lower-roman) ". "}.lst-kix_p8a3u4ougab9-5>li:before{co ntent:"" counter(lst-ctn-kix_p8a3u4ougab9-5,lower-roman) ". "}.lst-kix_hvjet9voi iio-3>li{counter-increment:lst-ctn-kix_hvjet9voiiio-3}ol.lst-kix_pyiocxf7nngd-6. start{counter-reset:lst-ctn-kix_pyiocxf7nngd-6 0}.lst-kix_uq748w6pjv3r-0>li:befo re{content:"" counter(lst-ctn-kix_uq748w6pjv3r-0,decimal) ". "}.lst-kix_8dg0b92y w51r-6>li{counter-increment:lst-ctn-kix_8dg0b92yw51r-6}.lst-kix_m1x0qzeeadaz-8>l i{counter-increment:lst-ctn-kix_m1x0qzeeadaz-8}ol.lst-kix_32zxnvl59py3-6.start{c ounter-reset:lst-ctn-kix_32zxnvl59py3-6 0}ol.lst-kix_m8zky1oy6k60-2.start{counte r-reset:lst-ctn-kix_m8zky1oy6k60-2 0}ol.lst-kix_jzpgxqq6fzzf-7.start{counter-res et:lst-ctn-kix_jzpgxqq6fzzf-7 0}ol.lst-kix_8uscekru9dbw-0{list-style-type:none}o l.lst-kix_9tkaqbe3bnu3-2.start{counter-reset:lst-ctn-kix_9tkaqbe3bnu3-2 0}.lst-k ix_t7any4lo9hoq-4>li:before{content:"\0025cb "}.lst-kix_nhaic9xr6pf-4>li:before {content:"" counter(lst-ctn-kix_nhaic9xr6pf-4,lower-latin) ". "}ul.lst-kix_kc6ai mw8pnra-3{list-style-type:none}ul.lst-kix_kc6aimw8pnra-2{list-style-type:none}ul .lst-kix_kc6aimw8pnra-1{list-style-type:none}ul.lst-kix_kc6aimw8pnra-0{list-styl e-type:none}.lst-kix_8uscekru9dbw-2>li:before{content:"" counter(lst-ctn-kix_8us cekru9dbw-2,lower-roman) ". "}.lst-kix_7kmxmbi2lsws-3>li:before{content:"" count er(lst-ctn-kix_7kmxmbi2lsws-3,decimal) ". "}ol.lst-kix_4s9m9sikrtm7-5.start{coun ter-reset:lst-ctn-kix_4s9m9sikrtm7-5 0}ol.lst-kix_8uscekru9dbw-8{list-style-type :none}ol.lst-kix_8uscekru9dbw-7{list-style-type:none}ol.lst-kix_8uscekru9dbw-6{l ist-style-type:none}.lst-kix_vvzditg8sno-3>li:before{content:"\0025cf "}ul.lst- kix_kc6aimw8pnra-8{list-style-type:none}ol.lst-kix_8uscekru9dbw-5{list-style-typ e:none}ul.lst-kix_kc6aimw8pnra-7{list-style-type:none}ol.lst-kix_8uscekru9dbw-4{ list-style-type:none}ul.lst-kix_kc6aimw8pnra-6{list-style-type:none}ol.lst-kix_8 uscekru9dbw-3{list-style-type:none}ul.lst-kix_kc6aimw8pnra-5{list-style-type:non e}ol.lst-kix_8uscekru9dbw-2{list-style-type:none}ul.lst-kix_kc6aimw8pnra-4{list- style-type:none}ol.lst-kix_8uscekru9dbw-1{list-style-type:none}.lst-kix_bnpbicbh bbru-1>li:before{content:"\0025cb "}ol.lst-kix_7kmxmbi2lsws-6.start{counter-res et:lst-ctn-kix_7kmxmbi2lsws-6 0}ol.lst-kix_1c0w7icorqz1-7.start{counter-reset:ls t-ctn-kix_1c0w7icorqz1-7 0}ol.lst-kix_m1x0qzeeadaz-4.start{counter-reset:lst-ctn -kix_m1x0qzeeadaz-4 0}.lst-kix_1gqf2s78t7o1-3>li:before{content:"" counter(lst-c tn-kix_1gqf2s78t7o1-3,decimal) ". "}ol.lst-kix_hm47sef7muk-8.start{counter-reset :lst-ctn-kix_hm47sef7muk-8 0}.lst-kix_1c0w7icorqz1-7>li{counter-increment:lst-ct n-kix_1c0w7icorqz1-7}ol.lst-kix_vnvg10gwrc8t-1.start{counter-reset:lst-ctn-kix_v nvg10gwrc8t-1 0}.lst-kix_lgtbofvz5zxd-2>li{counter-increment:lst-ctn-kix_lgtbofv z5zxd-2}.lst-kix_p8a3u4ougab9-3>li:before{content:"" counter(lst-ctn-kix_p8a3u4o ugab9-3,decimal) ". "}.lst-kix_1c0w7icorqz1-5>li:before{content:"" counter(lst-c tn-kix_1c0w7icorqz1-5,lower-roman) ". "}.lst-kix_jzpgxqq6fzzf-7>li{counter-incre ment:lst-ctn-kix_jzpgxqq6fzzf-7}.lst-kix_8dg0b92yw51r-2>li{counter-increment:lst -ctn-kix_8dg0b92yw51r-2}.lst-kix_oqqzpe3b3nud-8>li:before{content:"" counter(lst -ctn-kix_oqqzpe3b3nud-8,lower-roman) ". "}.lst-kix_9tkaqbe3bnu3-1>li:before{cont ent:"" counter(lst-ctn-kix_9tkaqbe3bnu3-1,lower-latin) ". "}.lst-kix_pyiocxf7nng d-1>li{counter-increment:lst-ctn-kix_pyiocxf7nngd-1}.lst-kix_kf08e4mo0q15-1>li:b efore{content:"" counter(lst-ctn-kix_kf08e4mo0q15-1,lower-latin) ". "}.lst-kix_8 dg0b92yw51r-5>li:before{content:"" counter(lst-ctn-kix_8dg0b92yw51r-5,lower-roma n) ". "}.lst-kix_1c0w7icorqz1-7>li:before{content:"" counter(lst-ctn-kix_1c0w7ic orqz1-7,lower-latin) ". "}.lst-kix_fpxsljpyl73u-2>li:before{content:"\0025a0 "} .lst-kix_m1x0qzeeadaz-3>li{counter-increment:lst-ctn-kix_m1x0qzeeadaz-3}.lst-kix _a4uqy1hx9g3-1>li:before{content:"\0025cb "}ol.lst-kix_ggm78fckav5h-2.start{cou nter-reset:lst-ctn-kix_ggm78fckav5h-2 0}ol.lst-kix_8dg0b92yw51r-5.start{counter- reset:lst-ctn-kix_8dg0b92yw51r-5 0}ol.lst-kix_2uog6ch44jpu-2.start{counter-reset :lst-ctn-kix_2uog6ch44jpu-2 0}.lst-kix_ggm78fckav5h-6>li:before{content:"" count er(lst-ctn-kix_ggm78fckav5h-6,decimal) ". "}.lst-kix_a4uqy1hx9g3-7>li:before{con tent:"\0025cb "}.lst-kix_57tjkabqizo2-7>li{counter-increment:lst-ctn-kix_57tjka bqizo2-7}ol.lst-kix_lgtbofvz5zxd-1{list-style-type:none}ol.lst-kix_lgtbofvz5zxd- 0{list-style-type:none}ol.lst-kix_z7in7d1ar2zt-2.start{counter-reset:lst-ctn-kix _z7in7d1ar2zt-2 0}.lst-kix_qz5wp1hdd24k-3>li:before{content:"" counter(lst-ctn-k ix_qz5wp1hdd24k-3,decimal) ". "}.lst-kix_1c0w7icorqz1-4>li:before{content:"" cou nter(lst-ctn-kix_1c0w7icorqz1-4,lower-latin) ". "}.lst-kix_pyiocxf7nngd-2>li:bef ore{content:"" counter(lst-ctn-kix_pyiocxf7nngd-2,lower-roman) ". "}.lst-kix_lix znqbqiris-6>li:before{content:"" counter(lst-ctn-kix_lixznqbqiris-6,decimal) ". "}ol.lst-kix_1gqf2s78t7o1-1.start{counter-reset:lst-ctn-kix_1gqf2s78t7o1-1 0}ol. lst-kix_lgtbofvz5zxd-8{list-style-type:none}ol.lst-kix_lgtbofvz5zxd-6{list-style -type:none}ol.lst-kix_lgtbofvz5zxd-7{list-style-type:none}ol.lst-kix_lgtbofvz5zx d-4{list-style-type:none}ol.lst-kix_lgtbofvz5zxd-5{list-style-type:none}ol.lst-k ix_uq748w6pjv3r-8.start{counter-reset:lst-ctn-kix_uq748w6pjv3r-8 0}ol.lst-kix_lg tbofvz5zxd-2{list-style-type:none}ol.lst-kix_lgtbofvz5zxd-3{list-style-type:none }.lst-kix_32zxnvl59py3-6>li{counter-increment:lst-ctn-kix_32zxnvl59py3-6}.lst-ki x_dblgil8t24zy-3>li{counter-increment:lst-ctn-kix_dblgil8t24zy-3}.lst-kix_sgsi64 vug03j-8>li:before{content:"" counter(lst-ctn-kix_sgsi64vug03j-8,lower-roman) ". "}.lst-kix_m8zky1oy6k60-4>li:before{content:"" counter(lst-ctn-kix_m8zky1oy6k60 -4,lower-latin) ". "}.lst-kix_opzlp0rjj486-1>li{counter-increment:lst-ctn-kix_op zlp0rjj486-1}ol.lst-kix_lgtbofvz5zxd-4.start{counter-reset:lst-ctn-kix_lgtbofvz5 zxd-4 0}.lst-kix_z7in7d1ar2zt-0>li:before{content:"" counter(lst-ctn-kix_z7in7d1 ar2zt-0,decimal) ". "}.lst-kix_lgtbofvz5zxd-7>li:before{content:"" counter(lst-c tn-kix_lgtbofvz5zxd-7,lower-latin) ". "}.lst-kix_t9jkz28ln50j-1>li{counter-incre ment:lst-ctn-kix_t9jkz28ln50j-1}ol.lst-kix_m8zky1oy6k60-4.start{counter-reset:ls t-ctn-kix_m8zky1oy6k60-4 0}ol.lst-kix_z7in7d1ar2zt-1.start{counter-reset:lst-ctn -kix_z7in7d1ar2zt-1 0}ol.lst-kix_pa6lflf2amnu-2.start{counter-reset:lst-ctn-kix_ pa6lflf2amnu-2 0}.lst-kix_pyiocxf7nngd-4>li:before{content:"" counter(lst-ctn-ki x_pyiocxf7nngd-4,lower-latin) ". "}ol.lst-kix_7kmxmbi2lsws-0.start{counter-reset :lst-ctn-kix_7kmxmbi2lsws-0 0}.lst-kix_nho7sy6cpfv0-1>li:before{content:"" count er(lst-ctn-kix_nho7sy6cpfv0-1,lower-latin) ". "}.lst-kix_v454r7upbzuz-6>li:befor e{content:"" counter(lst-ctn-kix_v454r7upbzuz-6,decimal) ". "}.lst-kix_kvgsl0s9r zo4-3>li:before{content:"" counter(lst-ctn-kix_kvgsl0s9rzo4-3,decimal) ". "}.lst -kix_nho7sy6cpfv0-4>li{counter-increment:lst-ctn-kix_nho7sy6cpfv0-4}.lst-kix_7km xmbi2lsws-3>li{counter-increment:lst-ctn-kix_7kmxmbi2lsws-3}.lst-kix_qz5wp1hdd24 k-6>li{counter-increment:lst-ctn-kix_qz5wp1hdd24k-6}.lst-kix_jxeur1wnlj7y-7>li{c ounter-increment:lst-ctn-kix_jxeur1wnlj7y-7}ol.lst-kix_hvjet9voiiio-6.start{coun ter-reset:lst-ctn-kix_hvjet9voiiio-6 0}ol.lst-kix_lixznqbqiris-7.start{counter-r eset:lst-ctn-kix_lixznqbqiris-7 0}.lst-kix_pyiocxf7nngd-3>li:before{content:"" c ounter(lst-ctn-kix_pyiocxf7nngd-3,decimal) ". "}.lst-kix_pza3ybm1wtg3-4>li{count er-increment:lst-ctn-kix_pza3ybm1wtg3-4}ol.lst-kix_57tjkabqizo2-7.start{counter- reset:lst-ctn-kix_57tjkabqizo2-7 0}ol.lst-kix_32zxnvl59py3-4.start{counter-reset :lst-ctn-kix_32zxnvl59py3-4 0}ol.lst-kix_hvjet9voiiio-2.start{counter-reset:lst- ctn-kix_hvjet9voiiio-2 0}.lst-kix_3h1iswqv3l7s-8>li{counter-increment:lst-ctn-ki x_3h1iswqv3l7s-8}.lst-kix_m1x0qzeeadaz-5>li:before{content:"" counter(lst-ctn-ki x_m1x0qzeeadaz-5,lower-roman) ". "}ol.lst-kix_dblgil8t24zy-0.start{counter-reset :lst-ctn-kix_dblgil8t24zy-0 0}.lst-kix_nhaic9xr6pf-2>li:before{content:"" counte r(lst-ctn-kix_nhaic9xr6pf-2,lower-roman) ". "}.lst-kix_qeukrmzdd856-6>li:before{ content:"" counter(lst-ctn-kix_qeukrmzdd856-6,decimal) ". "}.lst-kix_hm47sef7muk -8>li{counter-increment:lst-ctn-kix_hm47sef7muk-8}ol.lst-kix_kf08e4mo0q15-8.star t{counter-reset:lst-ctn-kix_kf08e4mo0q15-8 0}ol.lst-kix_jzpgxqq6fzzf-6.start{cou nter-reset:lst-ctn-kix_jzpgxqq6fzzf-6 0}ol.lst-kix_wzk0mdv2qg9u-4{list-style-typ e:none}ol.lst-kix_wzk0mdv2qg9u-5{list-style-type:none}ol.lst-kix_wzk0mdv2qg9u-2{ list-style-type:none}ol.lst-kix_wzk0mdv2qg9u-3{list-style-type:none}ol.lst-kix_w zk0mdv2qg9u-8{list-style-type:none}ol.lst-kix_wzk0mdv2qg9u-6{list-style-type:non e}ol.lst-kix_wzk0mdv2qg9u-7{list-style-type:none}ol.lst-kix_wzk0mdv2qg9u-0{list- style-type:none}ol.lst-kix_4s9m9sikrtm7-8.start{counter-reset:lst-ctn-kix_4s9m9s ikrtm7-8 0}ol.lst-kix_wzk0mdv2qg9u-1{list-style-type:none}.lst-kix_jxeur1wnlj7y- 6>li{counter-increment:lst-ctn-kix_jxeur1wnlj7y-6}ol.lst-kix_qz5wp1hdd24k-2.star t{counter-reset:lst-ctn-kix_qz5wp1hdd24k-2 0}.lst-kix_2uog6ch44jpu-1>li{counter- increment:lst-ctn-kix_2uog6ch44jpu-1}.lst-kix_lixznqbqiris-4>li:before{content:" " counter(lst-ctn-kix_lixznqbqiris-4,lower-latin) ". "}.lst-kix_jzpgxqq6fzzf-5>l i{counter-increment:lst-ctn-kix_jzpgxqq6fzzf-5}.lst-kix_ggm78fckav5h-2>li:before {content:"" counter(lst-ctn-kix_ggm78fckav5h-2,lower-roman) ". "}.lst-kix_juntnh t2kzza-1>li{counter-increment:lst-ctn-kix_juntnht2kzza-1}ol.lst-kix_fr6w5z45nvx0 -2.start{counter-reset:lst-ctn-kix_fr6w5z45nvx0-2 0}.lst-kix_1gqf2s78t7o1-7>li{c ounter-increment:lst-ctn-kix_1gqf2s78t7o1-7}.lst-kix_t9jkz28ln50j-8>li:before{co ntent:"" counter(lst-ctn-kix_t9jkz28ln50j-8,lower-roman) ". "}.lst-kix_qz5wp1hdd 24k-7>li{counter-increment:lst-ctn-kix_qz5wp1hdd24k-7}.lst-kix_jxeur1wnlj7y-4>li :before{content:"" counter(lst-ctn-kix_jxeur1wnlj7y-4,lower-latin) ". "}.lst-kix _qeukrmzdd856-7>li{counter-increment:lst-ctn-kix_qeukrmzdd856-7}.lst-kix_kc6aimw 8pnra-3>li:before{content:"\0025cf "}ol.lst-kix_t9jkz28ln50j-0.start{counter-re set:lst-ctn-kix_t9jkz28ln50j-0 0}.lst-kix_t9jkz28ln50j-5>li{counter-increment:ls t-ctn-kix_t9jkz28ln50j-5}.lst-kix_lgtbofvz5zxd-1>li:before{content:"" counter(ls t-ctn-kix_lgtbofvz5zxd-1,lower-latin) ". "}.lst-kix_oqqzpe3b3nud-7>li{counter-in crement:lst-ctn-kix_oqqzpe3b3nud-7}.lst-kix_uq748w6pjv3r-4>li:before{content:"" counter(lst-ctn-kix_uq748w6pjv3r-4,lower-latin) ". "}.lst-kix_3h1iswqv3l7s-5>li: before{content:"" counter(lst-ctn-kix_3h1iswqv3l7s-5,lower-roman) ". "}ol.lst-ki x_nho7sy6cpfv0-1.start{counter-reset:lst-ctn-kix_nho7sy6cpfv0-1 0}.lst-kix_kf08e 4mo0q15-7>li:before{content:"" counter(lst-ctn-kix_kf08e4mo0q15-7,lower-latin) " . "}.lst-kix_oqqzpe3b3nud-6>li:before{content:"" counter(lst-ctn-kix_oqqzpe3b3nu d-6,decimal) ". "}ol.lst-kix_1g0xzctl1vi-6.start{counter-reset:lst-ctn-kix_1g0xz ctl1vi-6 0}.lst-kix_v454r7upbzuz-4>li{counter-increment:lst-ctn-kix_v454r7upbzuz -4}ol.lst-kix_z7in7d1ar2zt-0.start{counter-reset:lst-ctn-kix_z7in7d1ar2zt-0 0}ol .lst-kix_7kmxmbi2lsws-6{list-style-type:none}ol.lst-kix_7kmxmbi2lsws-5{list-styl e-type:none}ol.lst-kix_7kmxmbi2lsws-4.start{counter-reset:lst-ctn-kix_7kmxmbi2ls ws-4 0}ol.lst-kix_7kmxmbi2lsws-4{list-style-type:none}.lst-kix_bnpbicbhbbru-8>li :before{content:"\0025a0 "}ol.lst-kix_7kmxmbi2lsws-3{list-style-type:none}ol.ls t-kix_7kmxmbi2lsws-2{list-style-type:none}ol.lst-kix_7kmxmbi2lsws-1{list-style-t ype:none}ol.lst-kix_7kmxmbi2lsws-0{list-style-type:none}.lst-kix_pa6lflf2amnu-6> li{counter-increment:lst-ctn-kix_pa6lflf2amnu-6}.lst-kix_4s9m9sikrtm7-7>li{count er-increment:lst-ctn-kix_4s9m9sikrtm7-7}ol.lst-kix_dblgil8t24zy-8.start{counter- reset:lst-ctn-kix_dblgil8t24zy-8 0}.lst-kix_hm47sef7muk-7>li:before{content:"" c ounter(lst-ctn-kix_hm47sef7muk-7,lower-latin) ". "}ol.lst-kix_vnvg10gwrc8t-8.sta rt{counter-reset:lst-ctn-kix_vnvg10gwrc8t-8 0}.lst-kix_vvzditg8sno-5>li:before{c ontent:"\0025a0 "}.lst-kix_nhaic9xr6pf-2>li{counter-increment:lst-ctn-kix_nhaic 9xr6pf-2}ol.lst-kix_j51xhhtple7c-4.start{counter-reset:lst-ctn-kix_j51xhhtple7c- 4 0}.lst-kix_wzk0mdv2qg9u-5>li{counter-increment:lst-ctn-kix_wzk0mdv2qg9u-5}.lst -kix_j51xhhtple7c-7>li{counter-increment:lst-ctn-kix_j51xhhtple7c-7}.lst-kix_3h1 iswqv3l7s-6>li:before{content:"" counter(lst-ctn-kix_3h1iswqv3l7s-6,decimal) ". "}.lst-kix_hm47sef7muk-2>li{counter-increment:lst-ctn-kix_hm47sef7muk-2}.lst-kix _3h1iswqv3l7s-1>li:before{content:"" counter(lst-ctn-kix_3h1iswqv3l7s-1,lower-la tin) ". "}.lst-kix_juntnht2kzza-2>li{counter-increment:lst-ctn-kix_juntnht2kzza- 2}.lst-kix_jzpgxqq6fzzf-0>li:before{content:"" counter(lst-ctn-kix_jzpgxqq6fzzf- 0,decimal) ". "}.lst-kix_lgtbofvz5zxd-5>li:before{content:"" counter(lst-ctn-kix _lgtbofvz5zxd-5,lower-roman) ". "}.lst-kix_1gqf2s78t7o1-1>li:before{content:"" c ounter(lst-ctn-kix_1gqf2s78t7o1-1,lower-latin) ". "}ol.lst-kix_60g29afx0lof-2.st art{counter-reset:lst-ctn-kix_60g29afx0lof-2 0}ol.lst-kix_9tkaqbe3bnu3-8{list-st yle-type:none}ol.lst-kix_9tkaqbe3bnu3-7{list-style-type:none}ol.lst-kix_9tkaqbe3 bnu3-6{list-style-type:none}ol.lst-kix_9tkaqbe3bnu3-5{list-style-type:none}.lst- kix_q1b5wk7cmirb-6>li:before{content:"\0025cf "}ol.lst-kix_9tkaqbe3bnu3-0{list- style-type:none}.lst-kix_ggm78fckav5h-0>li{counter-increment:lst-ctn-kix_ggm78fc kav5h-0}.lst-kix_lgtbofvz5zxd-3>li{counter-increment:lst-ctn-kix_lgtbofvz5zxd-3} .lst-kix_3h1iswqv3l7s-5>li{counter-increment:lst-ctn-kix_3h1iswqv3l7s-5}ol.lst-k ix_9tkaqbe3bnu3-4{list-style-type:none}ol.lst-kix_8uscekru9dbw-4.start{counter-r eset:lst-ctn-kix_8uscekru9dbw-4 0}ol.lst-kix_9tkaqbe3bnu3-3{list-style-type:none }ol.lst-kix_9tkaqbe3bnu3-2{list-style-type:none}ol.lst-kix_9tkaqbe3bnu3-1{list-s tyle-type:none}.lst-kix_sgsi64vug03j-2>li{counter-increment:lst-ctn-kix_sgsi64vu g03j-2}.lst-kix_hm47sef7muk-8>li:before{content:"" counter(lst-ctn-kix_hm47sef7m uk-8,lower-roman) ". "}.lst-kix_pyiocxf7nngd-8>li:before{content:"" counter(lst- ctn-kix_pyiocxf7nngd-8,lower-roman) ". "}.lst-kix_3h1iswqv3l7s-1>li{counter-incr ement:lst-ctn-kix_3h1iswqv3l7s-1}.lst-kix_1g0xzctl1vi-6>li:before{content:"" cou nter(lst-ctn-kix_1g0xzctl1vi-6,decimal) ". "}.lst-kix_32zxnvl59py3-7>li{counter- increment:lst-ctn-kix_32zxnvl59py3-7}ol.lst-kix_1c0w7icorqz1-6.start{counter-res et:lst-ctn-kix_1c0w7icorqz1-6 0}.lst-kix_kc6aimw8pnra-6>li:before{content:"\0025 cf "}.lst-kix_j51xhhtple7c-7>li:before{content:"" counter(lst-ctn-kix_j51xhhtpl e7c-7,lower-latin) ". "}.lst-kix_nho7sy6cpfv0-7>li{counter-increment:lst-ctn-kix _nho7sy6cpfv0-7}ol.lst-kix_v454r7upbzuz-6.start{counter-reset:lst-ctn-kix_v454r7 upbzuz-6 0}.lst-kix_hvjet9voiiio-5>li{counter-increment:lst-ctn-kix_hvjet9voiiio -5}.lst-kix_nhaic9xr6pf-8>li:before{content:"" counter(lst-ctn-kix_nhaic9xr6pf-8 ,lower-roman) ". "}.lst-kix_i2v077rod1nx-0>li:before{content:"\0025cf "}.lst-ki x_9tkaqbe3bnu3-7>li:before{content:"" counter(lst-ctn-kix_9tkaqbe3bnu3-7,lower-l atin) ". "}ol.lst-kix_ggm78fckav5h-8.start{counter-reset:lst-ctn-kix_ggm78fckav5 h-8 0}ol.lst-kix_8dg0b92yw51r-8.start{counter-reset:lst-ctn-kix_8dg0b92yw51r-8 0 }.lst-kix_dblgil8t24zy-0>li:before{content:"" counter(lst-ctn-kix_dblgil8t24zy-0 ,decimal) ". "}ol.lst-kix_v454r7upbzuz-8.start{counter-reset:lst-ctn-kix_v454r7u pbzuz-8 0}.lst-kix_1gqf2s78t7o1-1>li{counter-increment:lst-ctn-kix_1gqf2s78t7o1- 1}ol.lst-kix_jxeur1wnlj7y-7.start{counter-reset:lst-ctn-kix_jxeur1wnlj7y-7 0}ol. lst-kix_juntnht2kzza-4.start{counter-reset:lst-ctn-kix_juntnht2kzza-4 0}ol.lst-k ix_jzpgxqq6fzzf-0.start{counter-reset:lst-ctn-kix_jzpgxqq6fzzf-0 0}ol.lst-kix_gg m78fckav5h-6.start{counter-reset:lst-ctn-kix_ggm78fckav5h-6 0}.lst-kix_j51xhhtpl e7c-6>li{counter-increment:lst-ctn-kix_j51xhhtple7c-6}ol.lst-kix_7kmxmbi2lsws-8{ list-style-type:none}ol.lst-kix_8uscekru9dbw-7.start{counter-reset:lst-ctn-kix_8 uscekru9dbw-7 0}ol.lst-kix_7kmxmbi2lsws-7{list-style-type:none}.lst-kix_t9jkz28l n50j-0>li:before{content:"" counter(lst-ctn-kix_t9jkz28ln50j-0,decimal) ". "}.ls t-kix_p8a3u4ougab9-1>li:before{content:"" counter(lst-ctn-kix_p8a3u4ougab9-1,low er-latin) ". "}ol.lst-kix_m1x0qzeeadaz-1.start{counter-reset:lst-ctn-kix_m1x0qze eadaz-1 0}.lst-kix_60g29afx0lof-5>li:before{content:"" counter(lst-ctn-kix_60g29 afx0lof-5,lower-roman) ". "}ol.lst-kix_opzlp0rjj486-7{list-style-type:none}ol.ls t-kix_opzlp0rjj486-6{list-style-type:none}ol.lst-kix_opzlp0rjj486-5{list-style-t ype:none}ol.lst-kix_opzlp0rjj486-4{list-style-type:none}ol.lst-kix_sgsi64vug03j- 8.start{counter-reset:lst-ctn-kix_sgsi64vug03j-8 0}ol.lst-kix_opzlp0rjj486-8{lis t-style-type:none}ol.lst-kix_z7in7d1ar2zt-7.start{counter-reset:lst-ctn-kix_z7in 7d1ar2zt-7 0}ol.lst-kix_t9jkz28ln50j-2.start{counter-reset:lst-ctn-kix_t9jkz28ln 50j-2 0}.lst-kix_8uscekru9dbw-4>li:before{content:"" counter(lst-ctn-kix_8uscekr u9dbw-4,lower-latin) ". "}.lst-kix_kvgsl0s9rzo4-1>li:before{content:"" counter(l st-ctn-kix_kvgsl0s9rzo4-1,lower-latin) ". "}.lst-kix_t7any4lo9hoq-6>li:before{co ntent:"\0025cf "}ol.lst-kix_pyiocxf7nngd-0.start{counter-reset:lst-ctn-kix_pyio cxf7nngd-0 0}.lst-kix_9tkaqbe3bnu3-5>li:before{content:"" counter(lst-ctn-kix_9t kaqbe3bnu3-5,lower-roman) ". "}ol.lst-kix_opzlp0rjj486-2{list-style-type:none}.l st-kix_bnpbicbhbbru-0>li:before{content:"\0025cf "}ol.lst-kix_opzlp0rjj486-3{li st-style-type:none}.lst-kix_8uscekru9dbw-4>li{counter-increment:lst-ctn-kix_8usc ekru9dbw-4}ol.lst-kix_opzlp0rjj486-0{list-style-type:none}ol.lst-kix_opzlp0rjj48 6-1{list-style-type:none}ol.lst-kix_m8zky1oy6k60-6.start{counter-reset:lst-ctn-k ix_m8zky1oy6k60-6 0}ol.lst-kix_p8a3u4ougab9-8.start{counter-reset:lst-ctn-kix_p8 a3u4ougab9-8 0}.lst-kix_oqqzpe3b3nud-2>li:before{content:"" counter(lst-ctn-kix_ oqqzpe3b3nud-2,lower-roman) ". "}.lst-kix_60g29afx0lof-8>li:before{content:"" co unter(lst-ctn-kix_60g29afx0lof-8,lower-roman) ". "}ol.lst-kix_qeukrmzdd856-8.sta rt{counter-reset:lst-ctn-kix_qeukrmzdd856-8 0}ol.lst-kix_pyiocxf7nngd-0{list-sty le-type:none}.lst-kix_uq748w6pjv3r-2>li:before{content:"" counter(lst-ctn-kix_uq 748w6pjv3r-2,lower-roman) ". "}ol.lst-kix_uq748w6pjv3r-7.start{counter-reset:lst -ctn-kix_uq748w6pjv3r-7 0}.lst-kix_8uscekru9dbw-8>li:before{content:"" counter(l st-ctn-kix_8uscekru9dbw-8,lower-roman) ". "}ol.lst-kix_kvgsl0s9rzo4-8.start{coun ter-reset:lst-ctn-kix_kvgsl0s9rzo4-8 0}ol.lst-kix_pyiocxf7nngd-3{list-style-type :none}ol.lst-kix_pyiocxf7nngd-4{list-style-type:none}ol.lst-kix_pyiocxf7nngd-1{l ist-style-type:none}ol.lst-kix_kvgsl0s9rzo4-5.start{counter-reset:lst-ctn-kix_kv gsl0s9rzo4-5 0}ol.lst-kix_pyiocxf7nngd-2{list-style-type:none}ol.lst-kix_pyiocxf 7nngd-8{list-style-type:none}ol.lst-kix_pyiocxf7nngd-7{list-style-type:none}ol.l st-kix_pyiocxf7nngd-6{list-style-type:none}.lst-kix_2uog6ch44jpu-4>li:before{con tent:"" counter(lst-ctn-kix_2uog6ch44jpu-4,lower-latin) ". "}.lst-kix_p8a3u4ouga b9-1>li{counter-increment:lst-ctn-kix_p8a3u4ougab9-1}ol.lst-kix_pyiocxf7nngd-5{l ist-style-type:none}.lst-kix_7kmxmbi2lsws-0>li:before{content:"" counter(lst-ctn -kix_7kmxmbi2lsws-0,decimal) ". "}ol.lst-kix_vnvg10gwrc8t-5.start{counter-reset: lst-ctn-kix_vnvg10gwrc8t-5 0}.lst-kix_60g29afx0lof-2>li{counter-increment:lst-ct n-kix_60g29afx0lof-2}.lst-kix_jpf3cr7xe1pc-8>li{counter-increment:lst-ctn-kix_jp f3cr7xe1pc-8}ol.lst-kix_sgsi64vug03j-6.start{counter-reset:lst-ctn-kix_sgsi64vug 03j-6 0}.lst-kix_32zxnvl59py3-6>li:before{content:"" counter(lst-ctn-kix_32zxnvl 59py3-6,decimal) ". "}ol.lst-kix_j51xhhtple7c-1{list-style-type:none}.lst-kix_gg m78fckav5h-5>li:before{content:"" counter(lst-ctn-kix_ggm78fckav5h-5,lower-roman ) ". "}ol.lst-kix_j51xhhtple7c-0{list-style-type:none}ol.lst-kix_j51xhhtple7c-3{ list-style-type:none}ol.lst-kix_j51xhhtple7c-2{list-style-type:none}.lst-kix_uq7 48w6pjv3r-0>li{counter-increment:lst-ctn-kix_uq748w6pjv3r-0}ol.lst-kix_lgtbofvz5 zxd-0.start{counter-reset:lst-ctn-kix_lgtbofvz5zxd-0 0}.lst-kix_lixznqbqiris-4>l i{counter-increment:lst-ctn-kix_lixznqbqiris-4}ol.lst-kix_2uog6ch44jpu-5.start{c ounter-reset:lst-ctn-kix_2uog6ch44jpu-5 0}ol.lst-kix_nhaic9xr6pf-1{list-style-ty pe:none}ol.lst-kix_nhaic9xr6pf-2{list-style-type:none}ol.lst-kix_nhaic9xr6pf-3{l ist-style-type:none}ol.lst-kix_nhaic9xr6pf-4{list-style-type:none}ol.lst-kix_nha ic9xr6pf-5{list-style-type:none}ol.lst-kix_nhaic9xr6pf-6{list-style-type:none}ol .lst-kix_nhaic9xr6pf-7{list-style-type:none}ol.lst-kix_nhaic9xr6pf-8{list-style- type:none}ol.lst-kix_j51xhhtple7c-4{list-style-type:none}ol.lst-kix_j51xhhtple7c -5{list-style-type:none}ol.lst-kix_j51xhhtple7c-6{list-style-type:none}ol.lst-ki x_j51xhhtple7c-7{list-style-type:none}ol.lst-kix_j51xhhtple7c-8{list-style-type: none}ol.lst-kix_nhaic9xr6pf-0{list-style-type:none}.lst-kix_vvzditg8sno-0>li:bef ore{content:"\0025cf "}.lst-kix_a4uqy1hx9g3-0>li:before{content:"\0025cf "}.ls t-kix_1g0xzctl1vi-1>li:before{content:"" counter(lst-ctn-kix_1g0xzctl1vi-1,lower -latin) ". "}ol.lst-kix_1g0xzctl1vi-3.start{counter-reset:lst-ctn-kix_1g0xzctl1v i-3 0}.lst-kix_fr6w5z45nvx0-5>li:before{content:"" counter(lst-ctn-kix_fr6w5z45n vx0-5,lower-roman) ". "}.lst-kix_fpxsljpyl73u-3>li:before{content:"\0025cf "}.l st-kix_7kmxmbi2lsws-2>li{counter-increment:lst-ctn-kix_7kmxmbi2lsws-2}.lst-kix_1 g0xzctl1vi-1>li{counter-increment:lst-ctn-kix_1g0xzctl1vi-1}ol.lst-kix_3h1iswqv3 l7s-5.start{counter-reset:lst-ctn-kix_3h1iswqv3l7s-5 0}ol.lst-kix_m1x0qzeeadaz-6 .start{counter-reset:lst-ctn-kix_m1x0qzeeadaz-6 0}.lst-kix_t9jkz28ln50j-1>li:bef ore{content:"" counter(lst-ctn-kix_t9jkz28ln50j-1,lower-latin) ". "}ol.lst-kix_5 f9palqqt4mm-3.start{counter-reset:lst-ctn-kix_5f9palqqt4mm-3 0}ol.lst-kix_2uog6c h44jpu-3.start{counter-reset:lst-ctn-kix_2uog6ch44jpu-3 0}.lst-kix_nho7sy6cpfv0- 8>li:before{content:"" counter(lst-ctn-kix_nho7sy6cpfv0-8,lower-roman) ". "}.lst -kix_4s9m9sikrtm7-8>li:before{content:"" counter(lst-ctn-kix_4s9m9sikrtm7-8,lowe r-roman) ". "}ol.lst-kix_nhaic9xr6pf-4.start{counter-reset:lst-ctn-kix_nhaic9xr6 pf-4 0}.lst-kix_opzlp0rjj486-2>li{counter-increment:lst-ctn-kix_opzlp0rjj486-2}. lst-kix_57tjkabqizo2-4>li:before{content:"" counter(lst-ctn-kix_57tjkabqizo2-4,l ower-latin) ". "}.lst-kix_juntnht2kzza-3>li{counter-increment:lst-ctn-kix_juntnh t2kzza-3}ol.lst-kix_wzk0mdv2qg9u-8.start{counter-reset:lst-ctn-kix_wzk0mdv2qg9u- 8 0}ol.lst-kix_8dg0b92yw51r-4.start{counter-reset:lst-ctn-kix_8dg0b92yw51r-4 0}. lst-kix_60g29afx0lof-5>li{counter-increment:lst-ctn-kix_60g29afx0lof-5}ol.lst-ki x_60g29afx0lof-5.start{counter-reset:lst-ctn-kix_60g29afx0lof-5 0}.lst-kix_qz5wp 1hdd24k-2>li:before{content:"" counter(lst-ctn-kix_qz5wp1hdd24k-2,lower-roman) " . "}.lst-kix_juntnht2kzza-7>li{counter-increment:lst-ctn-kix_juntnht2kzza-7}.lst -kix_5f9palqqt4mm-0>li:before{content:"" counter(lst-ctn-kix_5f9palqqt4mm-0,deci mal) ". "}ol.lst-kix_7kmxmbi2lsws-2.start{counter-reset:lst-ctn-kix_7kmxmbi2lsws -2 0}.lst-kix_v454r7upbzuz-7>li{counter-increment:lst-ctn-kix_v454r7upbzuz-7}.ls t-kix_fr6w5z45nvx0-4>li:before{content:"" counter(lst-ctn-kix_fr6w5z45nvx0-4,low er-latin) ". "}.lst-kix_kf08e4mo0q15-6>li{counter-increment:lst-ctn-kix_kf08e4mo 0q15-6}ol.lst-kix_57tjkabqizo2-6.start{counter-reset:lst-ctn-kix_57tjkabqizo2-6 0}ol.lst-kix_3h1iswqv3l7s-7.start{counter-reset:lst-ctn-kix_3h1iswqv3l7s-7 0}ol. lst-kix_uq748w6pjv3r-2.start{counter-reset:lst-ctn-kix_uq748w6pjv3r-2 0}.lst-kix _opzlp0rjj486-3>li:before{content:"" counter(lst-ctn-kix_opzlp0rjj486-3,decimal) ". "}.lst-kix_kvgsl0s9rzo4-1>li{counter-increment:lst-ctn-kix_kvgsl0s9rzo4-1}.l st-kix_juntnht2kzza-4>li:before{content:"" counter(lst-ctn-kix_juntnht2kzza-4,lo wer-latin) ". "}ol.lst-kix_dblgil8t24zy-1.start{counter-reset:lst-ctn-kix_dblgil 8t24zy-1 0}.lst-kix_7kmxmbi2lsws-4>li:before{content:"" counter(lst-ctn-kix_7kmx mbi2lsws-4,lower-latin) ". "}ol.lst-kix_oqqzpe3b3nud-3.start{counter-reset:lst-c tn-kix_oqqzpe3b3nud-3 0}ol.lst-kix_kf08e4mo0q15-6.start{counter-reset:lst-ctn-ki x_kf08e4mo0q15-6 0}.lst-kix_z7in7d1ar2zt-6>li{counter-increment:lst-ctn-kix_z7in 7d1ar2zt-6}.lst-kix_pza3ybm1wtg3-8>li{counter-increment:lst-ctn-kix_pza3ybm1wtg3 -8}.lst-kix_32zxnvl59py3-3>li:before{content:"" counter(lst-ctn-kix_32zxnvl59py3 -3,decimal) ". "}ol.lst-kix_opzlp0rjj486-6.start{counter-reset:lst-ctn-kix_opzlp 0rjj486-6 0}.lst-kix_lixznqbqiris-7>li{counter-increment:lst-ctn-kix_lixznqbqiri s-7}.lst-kix_j51xhhtple7c-4>li:before{content:"" counter(lst-ctn-kix_j51xhhtple7 c-4,lower-latin) ". "}ol.lst-kix_8dg0b92yw51r-0.start{counter-reset:lst-ctn-kix_ 8dg0b92yw51r-0 0}.lst-kix_kvgsl0s9rzo4-5>li{counter-increment:lst-ctn-kix_kvgsl0 s9rzo4-5}.lst-kix_8dg0b92yw51r-1>li:before{content:"" counter(lst-ctn-kix_8dg0b9 2yw51r-1,lower-latin) ". "}ol.lst-kix_vnvg10gwrc8t-2.start{counter-reset:lst-ctn -kix_vnvg10gwrc8t-2 0}.lst-kix_t9jkz28ln50j-4>li{counter-increment:lst-ctn-kix_t 9jkz28ln50j-4}ol.lst-kix_opzlp0rjj486-2.start{counter-reset:lst-ctn-kix_opzlp0rj j486-2 0}.lst-kix_pa6lflf2amnu-0>li{counter-increment:lst-ctn-kix_pa6lflf2amnu-0 }.lst-kix_dblgil8t24zy-2>li{counter-increment:lst-ctn-kix_dblgil8t24zy-2}.lst-ki x_m1x0qzeeadaz-0>li:before{content:"" counter(lst-ctn-kix_m1x0qzeeadaz-0,decimal ) ". "}ol.lst-kix_60g29afx0lof-0.start{counter-reset:lst-ctn-kix_60g29afx0lof-0 0}ol.lst-kix_fr6w5z45nvx0-4.start{counter-reset:lst-ctn-kix_fr6w5z45nvx0-4 0}ol. lst-kix_1g0xzctl1vi-0.start{counter-reset:lst-ctn-kix_1g0xzctl1vi-0 0}.lst-kix_m 8zky1oy6k60-0>li:before{content:"" counter(lst-ctn-kix_m8zky1oy6k60-0,decimal) " . "}ol.lst-kix_nho7sy6cpfv0-6.start{counter-reset:lst-ctn-kix_nho7sy6cpfv0-6 0}. lst-kix_hvjet9voiiio-3>li:before{content:"" counter(lst-ctn-kix_hvjet9voiiio-3,d ecimal) ". "}ol.lst-kix_3h1iswqv3l7s-8.start{counter-reset:lst-ctn-kix_3h1iswqv3 l7s-8 0}.lst-kix_57tjkabqizo2-7>li:before{content:"" counter(lst-ctn-kix_57tjkab qizo2-7,lower-latin) ". "}.lst-kix_hvjet9voiiio-2>li:before{content:"" counter(l st-ctn-kix_hvjet9voiiio-2,lower-roman) ". "}ol.lst-kix_60g29afx0lof-5{list-style -type:none}ol.lst-kix_60g29afx0lof-6{list-style-type:none}ol.lst-kix_60g29afx0lo f-7{list-style-type:none}ol.lst-kix_60g29afx0lof-8{list-style-type:none}.lst-kix _t9jkz28ln50j-5>li:before{content:"" counter(lst-ctn-kix_t9jkz28ln50j-5,lower-ro man) ". "}ol.lst-kix_fr6w5z45nvx0-1.start{counter-reset:lst-ctn-kix_fr6w5z45nvx0 -1 0}ol.lst-kix_kvgsl0s9rzo4-4.start{counter-reset:lst-ctn-kix_kvgsl0s9rzo4-4 0} .lst-kix_sgsi64vug03j-3>li:before{content:"" counter(lst-ctn-kix_sgsi64vug03j-3, decimal) ". "}.lst-kix_7kmxmbi2lsws-6>li:before{content:"" counter(lst-ctn-kix_7 kmxmbi2lsws-6,decimal) ". "}ol.lst-kix_60g29afx0lof-0{list-style-type:none}.lst- kix_opzlp0rjj486-4>li{counter-increment:lst-ctn-kix_opzlp0rjj486-4}ol.lst-kix_j5 1xhhtple7c-6.start{counter-reset:lst-ctn-kix_j51xhhtple7c-6 0}ol.lst-kix_60g29af x0lof-2{list-style-type:none}ol.lst-kix_60g29afx0lof-1{list-style-type:none}.lst -kix_t7any4lo9hoq-8>li:before{content:"\0025a0 "}ol.lst-kix_60g29afx0lof-4{list -style-type:none}ol.lst-kix_60g29afx0lof-3{list-style-type:none}ol{margin:0;padd ing:0}.c37{vertical-align:baseline;color:#000000;font-size:11pt;font-style:norma l;font-family:"Arial";text-decoration:none;font-weight:normal}.c28{vertical-alig n:top;width:504pt;border-style:solid;background-color:#ead1dc;border-color:#0000 00;border-width:1pt;padding:5pt 5pt 5pt 5pt}.c20{vertical-align:top;width:648pt; border-style:solid;background-color:#f3f3f3;border-color:#000000;border-width:1p t;padding:5pt 5pt 5pt 5pt}.c25{vertical-align:top;width:144pt;border-style:solid ;border-color:#000000;border-width:1pt;padding:5pt 5pt 5pt 5pt}.c4{line-height:1 .0;padding-top:0pt;text-align:center;padding-bottom:0pt}.c34{color:#999999;font- size:24pt;font-family:"Open Sans"}.c19{font-size:12pt;font-family:"Consolas";tex t-decoration:line-through}.c41{color:#a64d79;font-size:12pt;font-family:"Trebuch et MS"}.c18{line-height:1.15;text-align:left;padding-bottom:0pt}.c39{color:#0000 00;font-size:11pt;font-weight:normal}.c33{color:#666666;font-size:12pt;font-fami ly:"Trebuchet MS"}.c13{margin-right:auto;border-collapse:collapse}.c26{max-width :648pt;background-color:#ffffff;padding:72pt 72pt 72pt 72pt}.c51{font-size:36pt; font-family:"Arial"}.c45{font-size:11pt;font-family:"Arial"}.c53{margin:5px;bord er:1px solid black}.c40{padding-top:18pt;padding-bottom:4pt}.c44{font-size:24pt; font-family:"Open Sans"}.c29{padding-top:24pt;padding-bottom:6pt}.c42{text-align :right;padding-bottom:0pt}.c3{padding-top:10pt;height:16pt}.c21{color:#1155cc;te xt-decoration:underline}.c31{font-size:18pt;font-family:"Arial"}.c36{color:#ff00 00;font-size:18pt}.c14{color:inherit;text-decoration:inherit}.c24{text-align:lef t;padding-bottom:0pt}.c10{margin:0;padding:0}.c52{font-size:36pt;font-family:"Op en Sans"}.c9{padding-top:8pt}.c16{padding-left:0pt}.c47{color:#333333}.c48{text- align:right}.c30{margin-left:108pt}.c50{color:#4a86e8}.c6{height:11pt}.c8{height :16pt}.c17{margin-left:72pt}.c2{font-family:"Courier New"}.c11{margin-left:36pt} .c12{padding-top:10pt}.c46{font-size:18pt}.c32{line-height:1.5}.c27{height:12pt} .c5{line-height:1.0}.c38{color:#ff0000}.c43{text-align:center}.c35{font-family:" Consolas"}.c23{text-decoration:line-through}.c49{color:#a64d79}.c1{font-weight:b old}.c15{font-style:italic}.c0{direction:ltr}.c22{height:0pt}.c7{padding-top:0pt }.title{padding-top:0pt;line-height:1.15;text-align:left;color:#000000;font-size :21pt;font-family:"Trebuchet MS";padding-bottom:0pt}.subtitle{padding-top:0pt;li ne-height:1.15;text-align:left;color:#666666;font-style:italic;font-size:13pt;fo nt-family:"Trebuchet MS";padding-bottom:10pt}li{color:#000000;font-size:11pt;fon t-family:"Arial"}p{color:#000000;font-size:11pt;margin:0;font-family:"Arial"}h1{ padding-top:10pt;line-height:1.15;text-align:left;color:#000000;font-size:16pt;f ont-family:"Trebuchet MS";padding-bottom:0pt}h2{padding-top:10pt;line-height:1.1 5;text-align:left;color:#000000;font-size:13pt;font-family:"Trebuchet MS";font-w eight:bold;padding-bottom:0pt}h3{padding-top:8pt;line-height:1.15;text-align:lef t;color:#666666;font-size:12pt;font-family:"Trebuchet MS";font-weight:bold;paddi ng-bottom:0pt}h4{padding-top:8pt;line-height:1.15;text-align:left;color:#666666; font-size:11pt;text-decoration:underline;font-family:"Trebuchet MS";padding-bott om:0pt}h5{padding-top:8pt;line-height:1.15;text-align:left;color:#666666;font-si ze:11pt;font-family:"Trebuchet MS";padding-bottom:0pt}h6{padding-top:8pt;line-he ight:1.15;text-align:left;color:#666666;font-style:italic;font-size:11pt;font-fa mily:"Trebuchet MS";padding-bottom:0pt}</style></head><body class="c26"><p class ="c29 c43 c0 title"><a name="h.w7msts8n8z9n"></a><img height="268" src="images/i mage30.png" width="616"></p><p class="c6 c0 c43"><span class="c36"></span></p><p class="c43 c0"><span class="c36">Oct, 2013: This code lab is </span><span class ="c36 c1">deprecated</span><span class="c36">.</span></p><p class="c43 c0"><span class="c36">It is based on Web UI, which is </span><span class="c1 c36">superse ded</span><span class="c36">&nbsp;by </span><span class="c21 c46"><a class="c14" href="https://www.dartlang.org/polymer-dart/">Polymer</a></span><span class="c3 6">.</span></p><p class="c29 c6 c43 c0 title"><a name="h.mwk409ib2hvj"></a></p>< p class="c6 c0"><span></span></p><p class="c6 c0"><span></span></p><p class="c29 c43 c0 title"><a name="h.umyrvsj374pd"></a><span class="c34 c1">Dart on the Mod ern Web</span></p><p class="c29 c43 c0 title"><a name="h.eit4v9fewd5g"></a><span class="c1 c34">Google I/O 2013 &mdash; Code lab</span></p><p class="c6 c0"><spa n></span></p><p class="c6 c0"><span></span></p><p class="c0 c29 title"><a name=" h.kerookz5dcyr"></a><span class="c1 c52">Dart on the Modern Web</span><img heigh t="133" src="images/image19.png" width="133"></p><p class="c0 c40 subtitle"><a n ame="h.lmjlnm6y08c9"></a><span class="c44">Using Dart to Build a Modern Web App< /span></p><h1 class="c29 c0"><a name="h.r18vdncm6tad"></a><span class="c1 c31">D art code lab for Google I/O 2013</span></h1><hr style="page-break-before:always; display:none;"><p class="c6 c0"><span></span></p><h1 class="c0"><a name="h.cgzc3 lhbqumi"></a><span>Introduction</span></h1><p class="c6 c0"><span></span></p><p class="c0"><span>Welcome to Dart! We built Dart to help developers from all plat forms build awesome apps for the modern web. Dart compiles to JavaScript to run across all modern browsers. Dart is an easy-to-learn language at the hub of &nbs p;a powerful set of tools for structured web app engineering. The Dart SDK conta ins a rich set of libraries, a powerful editor, a package manager, and much more .</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>In this code l ab, you&rsquo;ll build a simple, single-page, modern web app for desktop and mob ile.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>You will le arn:</span></p><p class="c6 c0"><span></span></p><ul class="c10 lst-kix_i2v077ro d1nx-0 start"><li class="c16 c11 c0"><span>A bit of the Dart language and librar ies</span></li><li class="c16 c11 c0"><span>Client-side templating</span></li><l i class="c16 c11 c0"><span>Declarative dynamic DOM generation</span></li><li cla ss="c16 c11 c0"><span>MDV-style data binding to sync UI elements with data</span ></li><li class="c16 c11 c0"><span>How to use the Dart HTML and Web UI libraries </span></li><li class="c16 c11 c0"><span>How to store data locally in your brows er</span></li><li class="c16 c11 c0"><span>Optimizing for </span><span>mobile</s pan><span>&nbsp;devices</span></li></ul><h2 class="c0"><a name="h.wybq4zhendq">< /a><span>Prerequisites</span></h2><p class="c6 c0"><span></span></p><p class="c0 "><span>This code lab assumes that you are familiar with web programming (HTML, CSS) and object-oriented programming. You do not need to be an expert in web pro gramming to enjoy this code lab.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>This code lab requires Dart Editor, which you will download and install in Step 0</span><span>.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span class="c1">Note:</span><span>&nbsp;Dart Editor runs on Windows (Vista, 7, or 8), Linux, or Mac.</span></p><hr style="page-break-before:always;d isplay:none;"><p class="c6 c0"><span></span></p><h2 class="c0"><a name="h.dqo034 2x5tkd"></a><span>Resources</span></h2><p class="c6 c0"><span></span></p><p clas s="c0"><span>There are numerous </span><span>resources for the new Dart develope r</span><span>. Here are some of our</span><span>&nbsp;recommendations:</span></ p><p class="c6 c0"><span></span></p><ul class="c10 lst-kix_q1b5wk7cmirb-0 start" ><li class="c16 c11 c0"><span class="c21"><a class="c14" href="http://www.dartla ng.org/docs/tutorials/">A Game of Darts - Tutorials</a></span></li><li class="c1 6 c11 c0"><span class="c21"><a class="c14" href="http://www.dartlang.org/docs/tu torials/web-ui/">Target 6: Get Started with Web UI</a></span></li><li class="c16 c11 c0"><span class="c21"><a class="c14" href="http://www.dartlang.org/docs/dar t-up-and-running/contents/ch02.html">Dart Language Tour</a></span></li><li class ="c16 c11 c0"><span class="c21"><a class="c14" href="http://www.dartlang.org/doc s/dart-up-and-running/contents/ch03.html">Dart Library Tour</a></span></li><li c lass="c16 c11 c0"><span class="c21"><a class="c14" href="http://www.dartlang.org /docs/">Programmer&#39;s Guide</a></span></li></ul><hr style="page-break-before: always;display:none;"><h1 class="c8 c0"><a name="h.j231q75dw9bi"></a></h1><h1 cl ass="c0"><a name="h.gu4egoh1qqcf"></a><span>Step 0: Get the app, run it in Dart Editor, and practice debugging</span></h1><p class="c6 c0"><span></span></p><p c lass="c0"><span>This step sets the stage. You make sure you have the right softw are, can run the finished app, and know how to use Dart Editor&rsquo;s integrate d debugger.</span></p><p class="c6 c0"><span></span></p><h2 class="c0"><a name=" h.fp11eex6azbi"></a><span>Objectives</span></h2><ol class="c10 lst-kix_p8a3u4oug ab9-0 start" start="1"><li class="c16 c11 c0"><span>Get the </span><span>latest version of Dart Editor</span></li><li class="c16 c11 c0"><span>Download the sour ce code for the sample app</span></li><li class="c16 c11 c0"><span>Run the finis hed version of the app</span></li><li class="c16 c11 c0"><span>Look at debugging information for the running app</span></li></ol><p class="c6 c0"><span></span>< /p><h2 class="c0"><a name="h.of31fpik16gt"></a><span>Concepts overview</span></h 2><ul class="c10 lst-kix_a4uqy1hx9g3-0 start"><li class="c16 c11 c0"><span class ="c1">Dartium</span><span>&nbsp;(Chromium with a built-in Dart VM) and the Dart SDK are included in Dart Editor download.</span></li><li class="c16 c11 c0"><spa n>You can run Dart web apps in Dartium or in </span><span class="c1">any modern browser</span><span>. (Dart Editor compiles the Dart code to JavaScript, using a n SDK tool called dart2js.)</span></li></ul><p class="c6 c0"><span></span></p><h 2 class="c0"><a name="h.l63dnbcn7kku"></a><span>Walkthrough</span></h2><h3 class ="c0"><a name="h.p74ks3s27haa"></a><span>Download or update Dart Editor</span></ h3><p class="c6 c0"><span></span></p><p class="c0"><span>If you </span><span cla ss="c1">don&rsquo;t </span><span>have a copy of Dart Editor, get it:</span></p>< ol class="c10 lst-kix_m1x0qzeeadaz-0 start" start="1"><li class="c16 c11 c0"><sp an>Go to </span><span class="c21"><a class="c14" href="http://www.dartlang.org/t ools/editor/">dartlang.org/editor/</a></span><span>.</span></li><li class="c16 c 11 c0"><span>Download the version for your OS.</span></li><li class="c16 c11 c0" ><span>Unzip the file. You&rsquo;re done!</span></li><li class="c16 c11 c0"><spa n>Launch Dart Editor by double-clicking the </span><span class="c1">DartEditor</ span><span>&nbsp;executable file.</span></li></ol><p class="c17 c0"><img height= "93" src="images/image37.png" width="77"></p><p class="c11 c0"><span class="c1"> Note:</span><span>&nbsp;If you&rsquo;re on a Mac, you might see an &ldquo;uniden tified developer&rdquo; error. Here&rsquo;s the solution: Instead of double-clic king the </span><span class="c1">DartEditor</span><span>&nbsp;executable file, r ight-click (or Ctl+click) it to bring up a context menu, and choose </span><span class="c1">Open</span><span>. Then, in the dialog that comes up, click </span>< span class="c1">Open</span><span>. An alternative workaround is to change your s ecurity settings (see </span><span class="c21"><a class="c14" href="http://www.d artlang.org/tools/editor/troubleshoot.html">Troubleshooting Dart Editor</a></spa n><span>).</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>If yo u </span><span class="c1">do</span><span>&nbsp;already have a copy of Dart Edito r, make sure you&rsquo;re on the latest build:</span></p><ol class="c10 lst-kix_ jpf3cr7xe1pc-0 start" start="1"><li class="c16 c11 c0"><span>Launch Dart Editor. </span></li><li class="c16 c11 c0"><span>Close </span><span class="c1">Preferenc es</span><span>&nbsp;if you&rsquo;ve opened it.</span></li><li class="c16 c11 c0 "><span>Open </span><span class="c1">About Dart Editor</span><span>.</span></li> <li class="c16 c11 c0"><span>If the button at the bottom right (</span><span cla ss="c1">Check for Update </span><span>or </span><span class="c1">Download Update </span><span>)</span><span class="c1">&nbsp;</span><span>is enabled, click it, a nd download the update.</span></li><li class="c16 c11 c0"><span>When the button says </span><span class="c1">Apply Update</span><span>, click it.</span></li></o l><p class="c6 c0"><span></span></p><h3 class="c0"><a name="h.d3pxkjuwrjf7"></a> <span>Download the app&rsquo;s source code</span></h3><p class="c6 c0"><span></s pan></p><p class="c0"><span>You can either clone the git repo or download the ZI P file.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>To clone the repo from the command line:</span></p><p class="c6 c0"><span></span></p><p class="c11 c0"><span class="c2">git clone </span><span class="c21 c2"><a class=" c14" href="https://github.com/dart-lang/io-2013-dart-codelab">https://github.com /dart-lang/io-2013-dart-codelab</a></span></p><p class="c6 c0"><span></span></p> <p class="c0"><span>To get the source as a ZIP file:</span></p><p class="c6 c0"> <span></span></p><ol class="c10 lst-kix_kf08e4mo0q15-0 start" start="1"><li clas s="c16 c11 c0"><span>Go to </span><span class="c21"><a class="c14" href="https:/ /github.com/dart-lang/io-2013-dart-codelab">https://github.com/dart-lang/io-2013 -dart-codela</a></span><span class="c21"><a class="c14" href="https://github.com /dart-lang/io-2013-dart-codelab">b</a></span></li><li class="c16 c11 c0"><span>C lick the </span><span class="c1">Download </span><span class="c1">ZIP </span><sp an>button</span><span>&nbsp;in the right-hand column.</span></li></ol><p class=" c11 c0"><img height="197" src="images/image34.png" width="200"></p><h3 class="c0 "><a name="h.ygvsq0wvi55m"></a><span>Run the finished application</span></h3><p class="c6 c0"><span></span></p><p class="c0"><span>Now that you&rsquo;ve downloa ded the source code, try out the finished application.</span></p><p class="c6 c0 "><span></span></p><ol class="c10 lst-kix_oqqzpe3b3nud-0 start" start="1"><li cl ass="c16 c11 c0"><span>If you haven&rsquo;t already done so, launch Dart Editor by double-clicking the </span><span class="c1">DartEditor</span><span>&nbsp;exec utable file.</span></li></ol><p class="c17 c0"><img height="93" src="images/imag e37.png" width="77"></p><p class="c11 c0"><span>If you have trouble, see </span> <span class="c21"><a class="c14" href="http://www.dartlang.org/tools/editor/trou bleshoot.html">Troubleshooting Dart Editor</a></span><span>.<br></span></p><ol c lass="c10 lst-kix_oqqzpe3b3nud-0" start="2"><li class="c16 c11 c0"><span>In Dart Editor, t</span><span>ype </span><span class="c1">Ctl+O</span><span>&nbsp;(Linu x/Windows) or </span><span class="c1">Cmd+O</span><span>&nbsp;(Mac) </span><span >or choose </span><span class="c1">File &gt; </span><span class="c1">Open Existi ng Folder</span><span>.<br></span></li><li class="c16 c11 c0"><span>Select the < /span><span class="c1">io-2013-codelab-finished</span><span>&nbsp;directory in t he folder where you extracted the source code, and click </span><span class="c1" >Open</span><span>.</span><span>&nbsp;</span></li></ol><p class="c11 c0"><span c lass="c1">IMPORTANT</span><span>: Make sure you open </span><span class="c1">io- 2013-codelab-finished</span><span>&nbsp;and </span><span class="c1">not</span><s pan>&nbsp;its parent directory. Dart Editor analyzes all of the code in the open folder. For this code lab, it is more efficient to open just the directory for your active step rather than the top-level directory containing all of the steps .</span></p><p class="c11 c0"><img height="355" src="images/image32.png" width=" 800"></p><p class="c6 c11 c0"><span></span></p><p class="c11 c0"><span>Dart Edit or </span><span>installs the app&rsquo;s dependenc</span><span>ies and starts bu ilding it. The progress bar is in the lower right corner of the window. Dart Edi tor keeps the dependencies and compiled version up-to-date. However, if you ever need or want to build the app manually, you can follow these steps:</span></p>< ol class="c10 lst-kix_hvjet9voiiio-1 start" start="1"><li class="c16 c17 c0"><sp an>In the Files view, right-click </span><span class="c1">pubspec.yaml</span><sp an>&nbsp;and choose </span><span class="c1">Pub Install</span><span>.</span></li ><li class="c16 c17 c0"><span>In the Tools menu, choose </span><span class="c1"> Reanalyze Sources</span><span>.<br>(The editor might beat you to this, but it wo n&rsquo;t hurt to do it twice.)</span></li><li class="c16 c17 c0"><span>In the F iles view, right-click</span><span>&nbsp;</span><span class="c1">build.da</span> <span class="c1">rt</span><span>&nbsp;and choose </span><span class="c1">Run</sp an><span>. <br>The output should look </span><span>something</span><span>&nbsp;l ike the following.</span></li></ol><p class="c6 c11 c0"><span></span></p><p clas s="c17 c5 c0"><span class="c2">Total time spent on web/index.html &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; -- 1159 ms</span></p><p class="c17 c5 c0"><span class="c2">Total time &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &n bsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp ; -- 1194 ms</span></p><p class="c17 c5 c0"><span class="c2">Build finished!</sp an></p><p class="c6 c0"><span></span></p><ol class="c10 lst-kix_oqqzpe3b3nud-0" start="4"><li class="c16 c11 c0"><span>Run the app in Dartium:</span></li></ol>< ol class="c10 lst-kix_oqqzpe3b3nud-1 start" start="1"><li class="c16 c17 c0"><sp an>In the Files view, find the </span><span class="c1">web</span><span>&nbsp;dir ectory and right-click its </span><span class="c1">index.html</span><span>&nbsp; file.</span></li><li class="c16 c17 c0"><span>Choose </span><span class="c1">Run in Dartium</span><span>. The app initially looks like this:</span></li></ol><p class="c17 c0"><img height="342" src="images/image18.png" width="660"><span><br> </span><span class="c1">Note</span><span>: If you don&rsquo;t see an Untitled do cument, try steps 3a-3c. Also check that the </span><span class="c1">web</span>< span>&nbsp;directory contains an </span><span class="c1">out</span><span>&nbsp;d irectory. Try running </span><span class="c1">web/out/index.html</span><span>. I f it still doesn&rsquo;t work, restart Dart Editor.</span></p><p class="c6 c0">< span></span></p><ol class="c10 lst-kix_oqqzpe3b3nud-0" start="5"><li class="c16 c11 c0"><span>Play with the app</span><span>:</span></li></ol><ol class="c10 lst -kix_oqqzpe3b3nud-1" start="3"><li class="c16 c17 c0"><span>Click the + button t o create an untitled document.</span></li><li class="c16 c17 c0"><span>Rename th e untitled document by editing the title in the right-hand pane.</span></li><li class="c16 c17 c0"><span>Put some text in the document.</span></li><li class="c1 6 c17 c0"><span>Use the + button to create more documents.</span></li><li class= "c16 c0 c17"><span>Use the </span><span class="c1">Filter documents</span><span> &nbsp;field to limit the documents shown to those that have a certain string in their title or contents.</span></li></ol><p class="c17 c0"><img height="320" src ="images/image33.png" width="642"></p><ol class="c10 lst-kix_oqqzpe3b3nud-1" sta rt="8"><li class="c16 c17 c0"><span>Make the window narrower, and observe how th e layout changes.</span></li></ol><p class="c6 c0"><span></span></p><ol class="c 10 lst-kix_oqqzpe3b3nud-0" start="6"><li class="c16 c11 c0"><span>Copy the app&r squo;s URL from the tab that&rsquo;s running the app, then close that tab. Open another tab and navigate to the app&rsquo;s URL. Notice how all the documents yo u created remain, as long as you&rsquo;re using the same browser and profile.</s pan></li></ol><p class="c6 c0"><span></span></p><ol class="c10 lst-kix_oqqzpe3b3 nud-0" start="7"><li class="c16 c11 c0"><span>Now that you&rsquo;ve see the app running in Dartium, try running it in your default browser and in another browse r:</span></li></ol><ol class="c10 lst-kix_oqqzpe3b3nud-1" start="9"><li class="c 16 c17 c0"><span>Quit the Dartium app, </span><span>either by closing its tab or by clicking the </span><span class="c38 c1">red square</span><span>&nbsp;in the Debugger pane.</span></li></ol><p class="c17 c0"><img height="80" src="images/i mage20.png" width="166"></p><ol class="c10 lst-kix_oqqzpe3b3nud-1" start="10"><l i class="c16 c17 c0"><span>To </span><span>run the app in your default browser ( probably </span><span class="c21"><a class="c14" href="https://www.google.com/in tl/en/chrome/browser/">Chrome</a></span><span>), right-click </span><span class= "c1">web/index.html </span><span>and choose </span><span class="c1">Run as JavaS cript</span><span>. </span></li><li class="c16 c17 c0"><span>To run it in anothe r browser:</span></li></ol><ol class="c10 lst-kix_hvjet9voiiio-2 start" start="1 "><li class="c16 c30 c0"><span>From the </span><span class="c1">Run</span><span> &nbsp;menu, choose </span><span class="c1">Manage Launches</span><span>.</span>< /li><li class="c16 c30 c0"><span>Click the gray world button (to the left of the big </span><span class="c38 c1">red X</span><span>) to create a new </span><spa n>dart2js</span><span>&nbsp;launch.</span><span><br></span><img height="206" src ="images/image13.png" width="397"></li><li class="c16 c30 c0"><span>Enter inform ation for the launch. For example:<br>&#9656; Change &ldquo;New launch&rdquo; to </span><span class="c1">Writer in Firefox</span><span class="c1"><br></span><sp an>&#9656; For the HTML file, enter </span><span class="c1">/io-2013-codelab-fin ished/web/index.html</span></li></ol><p class="c30 c0"><span>&#9656; </span><spa n>Uncheck &ldquo;Use system default browser&rdquo;, and select the browser you n eed. For example, you might set the Browser field to </span><span class="c1">/Ap plications/Firefox.app</span></p><p class="c30 c0"><img height="437" src="images /image35.png" width="640"></p><ol class="c10 lst-kix_hvjet9voiiio-2" start="4">< li class="c16 c30 c0"><span>Click </span><span class="c1">Run</span><span>. Your app should look the same as it did in Dartium and your default browser:<br></sp an><img height="261" src="images/image24.png" width="495"><span><br>From now on, you can use the little arrow next to the Run button </span><img height="16" src ="images/image04.png" width="16"><span>&nbsp;to choose the launch you want to us e.</span></li></ol><p class="c0 c30"><img height="175" src="images/image27.png" width="593"></p><p class="c30 c6 c0"><span></span></p><h3 class="c0"><a name="h. yoqjazd1uxez"></a><span>Debug the running app</span></h3><p class="c6 c0"><span> </span></p><p class="c0"><span>The easiest way to debug a Dart app is with Dart Editor and Dartium. Try this:</span></p><p class="c6 c0"><span></span></p><ol cl ass="c10 lst-kix_m8zky1oy6k60-0 start" start="1"><li class="c16 c11 c0"><span>Op en </span><span class="c1">web/app.dart</span><span>&nbsp;in Dart Editor. (Doubl e-click it in the Files view.)</span></li><li class="c16 c11 c0"><span>In </span ><span>app.dart</span><span>, find the </span><span>createDocument</span><span>( ) function (line 34).<br></span><span class="c15">Trick: </span><span class="c15 ">Right-click </span><span class="c15">in the Editor pane and choose </span><spa n class="c1 c15">Outline File</span><span class="c15">. Then click </span><span class="c1 c15">createDocument</span><span class="c15">.</span></li></ol><p class ="c11 c0"><img height="271" src="images/image40.png" width="389"><span>&nbsp; &n bsp; </span><img height="218" src="images/image23.png" width="368"></p><ol class ="c10 lst-kix_m8zky1oy6k60-0" start="3"><li class="c16 c11 c0"><span>Set a break point in the function by double-clicking the gray bar </span><span>to the left o f &ldquo;void createDocument() ...&rdquo;</span><span>.</span></li></ol><p class ="c11 c0"><img height="123" src="images/image02.png" width="351"></p><ol class=" c10 lst-kix_m8zky1oy6k60-0" start="4"><li class="c16 c11 c0"><span>Stop</span><s pan>&nbsp;the app if it&rsquo;s already running. You can close the browser windo w the app is running in or click the </span><span class="c1 c38">red</span><span >&nbsp;stop button in Dart Editor.</span></li></ol><p class="c11 c0"><img height ="66" src="images/image11.png" width="280"></p><ol class="c10 lst-kix_m8zky1oy6k 60-0" start="5"><li class="c16 c11 c0"><span>Run the app in </span><span>Dartium </span><span>. If you are using the launches menu, choose the launch with the mi ni </span><span class="c1 c50">blue</span><span>&nbsp;Chromium icon.</span><img height="140" src="images/image39.png" width="441"></li><li class="c16 c11 c0"><s pan>Get the app to hit the breakpoint.</span></li></ol><ol class="c10 lst-kix_pa 6lflf2amnu-1 start" start="1"><li class="c16 c17 c0"><span>If you do not have an y documents saved, the app hits the breakpoint on startup because it needs to cr eate a new document to begin with.</span></li><li class="c16 c17 c0"><span>If th e app starts up without hitting the breakpoint, c</span><span>reate a new</span> <span>&nbsp;</span><span>document by clicking the + button.<br>The app hits the breakpoint.</span></li></ol><ol class="c10 lst-kix_m8zky1oy6k60-0" start="7"><li class="c16 c11 c0"><span>In the Debugger pane, open </span><span class="c1">top -level </span><span>and then click the </span><span class="c1">documents</span>< span>&nbsp;variable (</span><span class="c15">not the </span><span class="c1 c15 ">document</span><span class="c15">&nbsp;variable)</span><span>. It&rsquo;</span ><span>s an array of Document objects.</span><span>&nbsp;In the image below, the array contains three Document objects.</span></li></ol><p class="c11 c0"><img h eight="419" src="images/image15.png" width="345"></p><ol class="c10 lst-kix_m8zk y1oy6k60-0" start="8"><li class="c16 c11 c0"><span>Use F5 or click the &ldquo;St ep Into&rdquo; icon.</span></li></ol><p class="c11 c0"><img height="66" src="ima ges/image05.png" width="280"><span><br></span><span>Whoops, now you&rsquo;re in library code!</span></p><ol class="c10 lst-kix_m8zky1oy6k60-0" start="9"><li cla ss="c16 c11 c0"><span>Use F7 or the</span><span>&nbsp;&ldquo;Step Return&rdquo; icon</span><span>&nbsp;to get back into app.dart code.</span></li></ol><p class= "c11 c0"><img height="66" src="images/image25.png" width="280"></p><ol class="c1 0 lst-kix_m8zky1oy6k60-0" start="10"><li class="c16 c11 c0"><span>In the Debugge r pane, look at the </span><span class="c1">doc</span><span>&nbsp;variable, whic h is an instance of Document.</span></li><li class="c16 c11 c0"><span>Use F6 or &ldquo;Step Over&rdquo; to get to the next line of code.</span></li></ol><p clas s="c11 c0"><img height="66" src="images/image08.png" width="280"></p><ol class=" c10 lst-kix_m8zky1oy6k60-0" start="12"><li class="c16 c11 c0"><span>Look at the top-level documents variable again. The array contains one more item than it did before.</span><img height="315" src="images/image28.png" width="277"></li><li c lass="c16 c11 c0"><span>Continue </span><span>playing with the debugger</span><s pan>.</span></li></ol><p class="c0"><span><br></span><span class="c1">Note: </sp an><span>Don&rsquo;t open Developer Tools in Dartium while you&rsquo;re debuggin g. Due to a bug, this crashes the debugger.</span></p><h1 class="c0 c3"><a name= "h.m0iq4b5hbsv5"></a></h1><hr style="page-break-before:always;display:none;"><h1 class="c3 c0"><a name="h.iwp6w76ozn91"></a></h1><h1 class="c12 c0"><a name="h.m kmyy8842ats"></a><span>Overview: A visual summary of what you&rsquo;ll be doing< /span></h1><p class="c6 c0"><span></span></p><a href="#" name="52d6a0f8e4829fea7 de3b1d33f961a48fdaa7f9a"></a><a href="#" name="0"></a><table cellpadding="0" cel lspacing="0" class="c13"><tbody><tr><td class="c25"><p class="c42 c5 c0 c7"><spa n>Begin with skeletal app</span></p></td><td class="c28"><p class="c4 c0"><img h eight="365" src="images/image31.png" width="344"><span>&nbsp;</span></p></td></t r><tr><td class="c25"><p class="c42 c5 c0 c7"><span>Add document word count to t he footer</span></p></td><td class="c28"><p class="c4 c0"><img height="361" src= "images/image29.png" width="341"></p></td></tr><tr><td class="c25"><p class="c42 c5 c0 c7"><span>Create side bar</span></p></td><td class="c28"><p class="c4 c0" ><img height="365" src="images/image14.png" width="344"></p></td></tr><tr><td cl ass="c25"><p class="c42 c5 c0 c7"><span>Add the ability to create, select, and < /span><span>delete</span><span>&nbsp;documents</span></p></td><td class="c28"><p class="c4 c0"><img height="326" src="images/image17.png" width="359"></p></td>< /tr><tr><td class="c25"><p class="c42 c5 c0 c7"><span>Add search filter</span></ p></td><td class="c28"><p class="c4 c0"><img height="317" src="images/image09.pn g" width="359"></p></td></tr><tr class="c22"><td class="c25"><p class="c5 c0 c7 c42"><span>Add local storage (provides document persistence between invocations) </span></p></td><td class="c28"><p class="c4 c0"><img height="314" src="images/i mage21.png" width="355"></p></td></tr><tr class="c22"><td class="c25"><p class=" c42 c5 c0 c7"><span>Optimize layout for mobile devices</span></p></td><td class= "c28"><p class="c0 c4"><span>Index </span><img height="197" src="images/image00. png" width="253"><span>&nbsp; Contents &nbsp; </span><img height="198" src="imag es/image36.png" width="254"></p></td></tr></tbody></table><p class="c6 c0"><span ></span></p><h1 class="c0 c8"><a name="h.cpkpyn1nw7g"></a></h1><h1 class="c0"><a name="h.ymc534ugdysm"></a><span>Step 1: Begin with a skeletal app, add the word count to the footer using data binding</span></h1><p class="c6 c0 c7"><span></s pan></p><p class="c0 c7"><span>Now that you have Dart Editor set up and understa nd how the application works, let&rsquo;s rebuild the app step-by-step, starting with a skeletal version. The code you downloaded from github contains a directo ry for each completed step of the code lab. So if necessary, you can begin each step with a correct version of the app. In the walkthrough portion of this step, you begin with the code in </span><span class="c1">io-2013-codelab-step1</span> <span>.</span></p><h2 class="c0"><a name="h.uvnvnl2dm2ai"></a><span>What you wil l learn</span></h2><p class="c6 c0 c7"><span></span></p><p class="c0"><span>You can display the value of a Dart variable on your web page directly within the HT ML code. When the value of the variable changes within the Dart program, the UI automatically updates.</span><span>&nbsp;This capability, called one-way data bi nding, is implemented by the Web UI public package. The Writer application uses one-way data binding to display the current document&rsquo;s word count in the f ooter of the page. </span></p><h2 class="c0"><a name="h.6jc7oqfnek9i"></a><span> Concepts overview</span></h2><p class="c6 c0"><span></span></p><ol class="c10 ls t-kix_t9jkz28ln50j-0 start" start="1"><li class="c16 c11 c0 c7"><span>Import pub lic packages.</span></li><li class="c16 c11 c0"><span>Libraries.</span></li><li class="c16 c11 c0 c7"><span>One-way data binding with Web UI.</span></li><li cla ss="c16 c11 c0 c7"><span>Getters.</span></li></ol><h3 class="c0"><a name="h.lpju flgo3igm"></a><span>Import public packages</span></h3><p class="c6 c0 c7"><span> </span></p><p class="c0"><span>A </span><span>package</span><span>&nbsp;is a dis tributable bundle of code, often containing one or more libraries. The pub packa ge manager helps you install and manage 3rd party packages. Dart&rsquo;s public repository </span><span class="c21"><a class="c14" href="http://pub.dartlang.org ">pub.dartlang.org</a></span><span>&nbsp;hosts many useful packages, including t he Web UI package, which you need later for this step. The code below is a </spa n><span class="c15">package import</span><span>, which </span><span>includes the Web UI package in a Dart file.</span></p><p class="c6 c0"><span></span></p><p c lass="c11 c0"><span class="c2">import &#39;package:web_ui/web_ui.dart&#39;; &nbs p;// import the Web UI package</span></p><p class="c6 c0"><span></span></p><p cl ass="c0"><span class="c1 c33">Libraries</span></p><p class="c6 c0"><span></span> </p><p class="c0"><span>Dart code can be organized into </span><span class="c15" >libraries</span><span>. A library is a namespace that can contain top-level fie lds, top-level functions, classes, and more. A library can import other librarie s, and be imported into other libraries.</span></p><p class="c6 c0"><span></span ></p><p class="c0"><span>The Dart core libraries start with &quot;dart:&quot;, s uch as dart:core, dart:collection, and dart:async. These libraries come from the Dart SDK. For example, to import the core async library, simply add this to the top of your library:</span></p><p class="c6 c0"><span></span></p><p class="c11 c0"><span class="c2">import &#39;dart:async&#39;; &nbsp;// an </span><span class ="c2">important</span><span class="c2">&nbsp;Dart core library</span></p><p clas s="c6 c0"><span></span></p><p class="c0"><span>A library can be split across mul tiple files, also known as </span><span class="c15">parts</span><span>. We don&# 39;t show an example of parts in the code lab.</span></p><p class="c6 c0 c7"><sp an></span></p><p class="c0 c7"><span class="c33 c1">One-way data binding with We b UI</span></p><p class="c6 c0 c7"><span></span></p><p class="c0"><span>The Web UI package implements one-way data binding, which provides dynamic and automatic synchronization between an HTML element and an observable Dart variable. The </ span><span>@observable</span><span>&nbsp;meta-data annotation marks a variable t o be observed. The Web UI compiler, </span><span>dwc</span><span>, generates ext ra code that notes changes to an observable variable and keeps the UI in sync wi th those changes. Here is an observable string:</span></p><p class="c6 c0"><span ></span></p><p class="c11 c0"><span class="c2">@observable String aStringOfNote = &#39;Hello, World!&#39;;</span></p><p class="c6 c0 c7"><span></span></p><p cla ss="c0 c7"><span>The value of an observable variable can be embedded in an HTML page, by including the variable name between </span><span>double curly braces, { {</span><span class="c15">name_of_observable</span><span class="c15">_var</span> <span>}},</span><span>&nbsp;within normal HTML code, </span><span>as shown:</spa n></p><p class="c6 c0 c7"><span></span></p><p class="c11 c0 c7"><span class="c2" >&lt;p&gt; {{aStringOfNote}} &lt;/p&gt;</span></p><p class="c6 c0 c7"><span></sp an></p><p class="c0 c7"><span>Later, if the value of the variable changes in the Dart code, the web page automatically updates to reflect the new value of the v ariable. For example, after the following line of Dart code runs, the paragraph element changes from </span><span>&ldquo;Hello, World!&rdquo;</span><span>&nbsp; to </span><span>&ldquo;Goodbye, cruel world!&rdquo;</span></p><p class="c6 c0 c7 "><span></span></p><p class="c11 c0"><span class="c2">aStringOfNote = &#39;Hello , Universe!&#39;;</span></p><p class="c6 c0"><span></span></p><h3 class="c9 c0"> <a name="h.2xeueasygjb"></a><span>Getters</span></h3><p class="c6 c0"><span></sp an></p><p class="c0"><span>Dart allows you to create getters and setters that lo ok like fields when used. </span><span>This means your design can start with sim ple fields, and evolve over time to use getters and setters. No more defensive a nd preemptive encapsulation!</span></p><p class="c6 c0"><span></span></p><p clas s="c0"><span>Here is an </span><span>example</span><span>. Consider a simple </s pan><span>Car</span><span>&nbsp;class with a single field called </span><span>is Running</span><span>.</span></p><p class="c6 c0"><span></span></p><p class="c11 c0"><span class="c2">class Car {</span></p><p class="c11 c0"><span class="c2">&n bsp; bool isRunning;</span></p><p class="c11 c0"><span class="c2">}</span></p><p class="c6 c11 c0"><span class="c2"></span></p><p class="c11 c0"><span class="c2 ">main() {</span></p><p class="c11 c0"><span class="c2">&nbsp; var car = new Car ();</span></p><p class="c0 c11"><span class="c2">&nbsp; print(car.isRunning);</s pan></p><p class="c11 c0"><span class="c2">}</span></p><p class="c6 c0"><span></ span></p><p class="c0"><span>Imagine that you later add an </span><span>Engine</ span><span>&nbsp;field to </span><span>Car</span><span>. </span><span>Engine</sp an><span>&nbsp;knows if it&#39;s running, thereby making </span><span>Car</span> <span>&#39;s </span><span>isRunning</span><span>&nbsp;field obsolete. Do you bre ak existing users? No way! Use a getter method!</span></p><p class="c6 c0"><span ></span></p><p class="c11 c0"><span class="c2">class Engine {</span></p><p class ="c11 c0"><span class="c2">&nbsp; bool isRunning;</span></p><p class="c11 c0"><s pan class="c2">}</span></p><p class="c6 c11 c0"><span class="c2"></span></p><p c lass="c11 c0"><span class="c2">class Car {</span></p><p class="c11 c0"><span cla ss="c2">&nbsp; Engine engine;</span></p><p class="c6 c11 c0"><span class="c2"></ span></p><p class="c11 c0"><span class="c2">&nbsp; bool get isRunning =&gt; engi ne.isRunning;</span></p><p class="c11 c0"><span class="c2">}</span></p><p class= "c6 c11 c0"><span class="c2"></span></p><p class="c11 c0"><span class="c2">main( ) {</span></p><p class="c11 c0"><span class="c2">&nbsp; var car = new Car();</sp an></p><p class="c11 c0"><span class="c2">&nbsp; print(car.isRunning);</span></p ><p class="c11 c0"><span class="c2">}</span></p><p class="c6 c0"><span></span></ p><p class="c0"><span>Notice how the usage of the </span><span>car.isRunning</sp an><span>&nbsp;is the same with both the getter and the field.</span><span>&nbsp ;The users of the </span><span>Car</span><span>&nbsp;class did not have to updat e their code when you changed the implementation of </span><span>Car</span><span >.</span></p><h2 class="c0 c12"><a name="h.50b5692q1fjp"></a><span>Walkthrough</ span></h2><h3 class="c9 c0"><a name="h.sv7ivpmaxg6a"></a><span>Open the code for step </span><span>1</span></h3><p class="c6 c0"><span></span></p><p class="c0"> <span>Close the </span><span class="c1">io-2013-codelab-finished</span><span>&nb sp;directory: right-click on the folder in the Files view of Dart Editor and sel ect </span><span class="c1">Close Folder </span><span>from the menu.</span></p>< p class="c6 c0"><span></span></p><p class="c0"><img height="342" src="images/ima ge12.png" width="448"></p><p class="c6 c0"><span></span></p><p class="c0"><span> Open </span><span class="c1">io-2013-codelab-step1</span><span>&nbsp;with </span ><span class="c1">File &gt; Open Existing Folder</span><span>&nbsp;as you did wi th the finished directory in the previous step.</span></p><p class="c0"><span cl ass="c1">IMPORTANT</span><span>: Make sure you open </span><span class="c1">io-2 013-codelab-</span><span class="c1">step1</span><span>&nbsp;and </span><span cla ss="c1">not</span><span>&nbsp;its parent directory. Dart Editor analyzes all of the code in the open folder. For this code lab, it is more efficient to open jus t the directory for your active step rather than the top-level directory contain ing all of the steps.</span></p><p class="c0"><img height="355" src="images/imag e38.png" width="800"></p><p class="c6 c11 c0"><span></span></p><p class="c0"><sp an>Dart Editor </span><span>installs</span><span class="c15">&nbsp;</span><span> the app&rsquo;s dependencies and builds it.</span></p><p class="c6 c0"><span></s pan></p><h3 class="c9 c0"><a name="h.wlekvj90m4yq"></a><span>Run the app</span>< /h3><p class="c6 c0"><span></span></p><p class="c0"><span>Right click </span><sp an class="c1">web/index.html</span><span>&nbsp;and choose </span><span class="c1 ">Run in Dartium...</span><span>. The app should initially look like this:</span ></p><p class="c6 c0"><span></span></p><p class="c0"><img height="379" src="imag es/image03.png" width="428"></p><h3 class="c0"><a name="h.q7zj6hd0zod0"></a><spa n>Import the Web UI package</span></h3><p class="c6 c0"><span></span></p><p clas s="c0"><span>The </span><span class="c1">lib/document.dart</span><span>&nbsp;fil e contains the code that implements a plain text document. The Document keeps tr ack of its creation time, has a title, and text content. In this step, you add a getter to the Document class that calculates the number of words in the documen t.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Double click </span><span class="c1">lib/document.dart</span><span>&nbsp;to open the file.</s pan></p><p class="c6 c0 c7"><span></span></p><p class="c0"><span>Near the top of the file, notice this comment. </span></p><p class="c11 c5 c0"><span class="c2" >&hellip;</span></p><p class="c11 c5 c0"><span class="c2">/// STEP 1: Import the Web UI package</span></p><p class="c11 c5 c0"><span class="c2">&hellip;</span>< /p><p class="c6 c11 c5 c0"><span></span></p><p class="c0 c7"><span>Comments of t his style appear throughout the code, clearly marking what to do for each number ed step. The </span><span class="c1">lib/document.dart</span><span>&nbsp;file ha s three comments for step one.</span></p><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>Beneath</span><span>&nbsp;the comment</span><span>, type in the import directive for including the Web UI package. In the gray code boxes t hroughout this code lab, the code you need to add is </span><span class="c35 c1" >bold</span><span>. Code you need to delete is</span><span>&nbsp;</span><span cl ass="c19">struck through</span><span>.</span></p><p class="c6 c0"><span></span>< /p><a href="#" name="1eb03ef741de58bf36f691312367c0d266536461"></a><a href="#" n ame="1"></a><table cellpadding="0" cellspacing="0" class="c13"><tbody><tr class= "c22"><td class="c20"><p class="c5 c0"><span class="c2">// lib/document.dart</sp an></p><p class="c5 c0"><span class="c2">&hellip;</span></p><p class="c0"><span class="c2">/// STEP 1: Import the Web UI package.</span></p><p class="c0"><span class="c2 c1">import &#39;package:web_ui/web_ui.dart&#39;;</span></p><p class="c 5 c0"><span class="c2">&hellip;</span></p></td></tr></tbody></table><p class="c6 c0"><span></span></p><h3 class="c0"><a name="h.84pihwlpka7h"></a><span>Mark the Document class with @observable</span></h3><p class="c6 c0 c7"><span></span></p ><p class="c0 c7"><span>Find the next </span><span>STEP 1</span><span>&nbsp;comm ent; it appears a few lines below the import directive you just </span><span>e</ span><span>n</span><span>tered</span><span>.</span></p><p class="c11 c5 c0"><spa n class="c2">&hellip;</span></p><p class="c11 c0"><span class="c2">/// STEP 1: M ark the class with @observable.</span></p><p class="c11 c5 c0"><span class="c2"> &hellip;</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Mark</s pan><span>&nbsp;the Document class with the </span><span>@observable</span><span >&nbsp;meta-data annotation. This makes all fields of an instance of the Documen t class observable.</span></p><p class="c6 c0"><span></span></p><a href="#" name ="5c00fe5847c5c44c6a1bc33519c44743fce819af"></a><a href="#" name="2"></a><table cellpadding="0" cellspacing="0" class="c13"><tbody><tr class="c22"><td class="c2 0"><p class="c5 c0"><span class="c2">// lib/document.dart</span></p><p class="c5 c0"><span class="c2">&hellip;</span></p><p class="c0"><span class="c2">/// STEP 1: Mark the class with @observable.</span></p><p class="c0"><span class="c2 c1" >@</span><span class="c2 c1">observable</span></p><p class="c0"><span class="c2" >class Document {</span></p><p class="c5 c0"><span class="c2">&hellip;</span></p ></td></tr></tbody></table><p class="c6 c0 c7"><span></span></p><h3 class="c0 c9 "><a name="h.gbd8omocl705"></a><span>Calculate the word count for the current do cument</span></h3><p class="c6 c0"><span></span></p><p class="c0"><span>To find the final task for step 1 in the </span><span class="c35 c1">lib/document.dart</ span><span>&nbsp;file,</span><span>&nbsp;s</span><span>earch for &ldquo;STEP 1&r dquo; and locate the comment for the wordCount method in the code. </span></p><p class="c11 c5 c0"><span class="c2">&hellip;</span></p><p class="c11 c0"><span c lass="c2">&nbsp; /// STEP 1: Add </span><span class="c2">wordCount</span><span c lass="c2">&nbsp;method.</span></p><p class="c11 c5 c0"><span class="c2">&hellip; </span></p><p class="c6 c11 c5 c0"><span></span></p><p class="c0"><span>To searc h in Dart Editor, go to the </span><span class="c1">Edit</span><span>&nbsp;menu and choose </span><span class="c1">Find/Replace...</span><span>. Then type &ldqu o;STEP 1&rdquo; into the text field and click </span><span class="c1">Find</span ><span>.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Under t he comment, a</span><span>dd</span><span>&nbsp;the code for a new getter called wordCount. The getter uses the RegExp class, which is provided in the dart:core library, to calculate how many words are in the document. The return value of th is getter is embedded in the </span><span>HTM</span><span>L in the next step.</s pan></p><p class="c6 c0"><span></span></p><a href="#" name="4f5973d69f8d5a7e7245 aa340d736601c6085760"></a><a href="#" name="3"></a><table cellpadding="0" cellsp acing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0"><s pan class="c2">// lib/document.dart</span></p><p class="c5 c0"><span class="c2"> &hellip;</span></p><p class="c5 c0"><span class="c2">&nbsp; /// STEP 1: Add word Count method.</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; /**</span></ p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp;* &nbsp;Number of words in t he document.</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp;*</span ></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp;* &nbsp;A &quot;word&quot ; is a string of characters separated by a space or a newline.</span></p><p clas s="c5 c0"><span class="c2 c1">&nbsp; &nbsp;*/</span></p><p class="c5 c0"><span c lass="c2 c1">&nbsp; String get wordCount {</span></p><p class="c5 c0"><span clas s="c2 c1">&nbsp; &nbsp; int count = new RegExp(r&quot;(\w|\&#39;)+&quot;).allMat ches(_content).length;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nb sp; if (count &gt; 1) {</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &n bsp; &nbsp; return &#39;$count words&#39;;</span></p><p class="c5 c0"><span clas s="c2 c1">&nbsp; &nbsp; } else if (count == 1) {</span></p><p class="c5 c0"><spa n class="c2 c1">&nbsp; &nbsp; &nbsp; return &#39;$count word&#39;;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; }</span></p><p class="c5 c0"><sp an class="c2 c1">&nbsp; &nbsp; return &#39;No words - Yo, Yo write something...& #39;;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; }</span></p><p class ="c5 c0"><span class="c2">&hellip;</span></p></td></tr></tbody></table><h3 class ="c9 c27 c0"><a name="h.ionqzezeva8k"></a></h3><p class="c0"><span>Save the file using </span><span class="c1">File &gt; Save</span><span>. You have completed a ll of the step 1 tasks in the </span><span class="c1">lib/document.dart </span>< span>file.</span></p><p class="c6 c0"><span></span></p><h3 class="c9 c0"><a name ="h.tvdyvkmtr48d"></a><span>Embed the word count in the footer of the web page.< /span></h3><p class="c6 c0"><span></span></p><p class="c0"><span>The HTML page t hat hosts the Writer app is </span><span class="c1">web/index.html</span><span>. Let&rsquo;s add the word count to the footer of the page.</span></p><p class="c 6 c0"><span></span></p><p class="c0"><span>Double click</span><span>&nbsp;</span ><span class="c1">web/index.html </span><span>to open it.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Search for &ldquo;STEP 1&rdquo; and lo cate the code for the footer.</span></p><p class="c6 c0"><span></span></p><p cla ss="c0"><span>Add the code to d</span><span>isplay the word count in the footer of the document</span><span>, using the double curly bracket syntax.</span></p>< p class="c6 c0"><span></span></p><a href="#" name="f6fe9061c4c563e8371a0634aedb7 8d26f02c3d1"></a><a href="#" name="4"></a><table cellpadding="0" cellspacing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0"><span class ="c2">// web/index.html</span></p><p class="c5 c0"><span class="c2">&hellip;</sp an></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &lt;div cla ss=&quot;footer&quot;&gt;</span></p><p class="c6 c5 c0"><span class="c2"></span> </p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- STEP 1: Show the current word count. --&gt;</span></p><p class="c5 c0"><span cl ass="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {{activeDocument.wordCount}}</spa n></p><p class="c6 c5 c0"><span class="c2"></span></p><p class="c5 c0"><span cla ss="c2">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/div&gt;</span></p><p class="c5 c0"><spa n class="c2">&hellip;</span></p></td></tr></tbody></table><p class="c6 c0"><span class="c2"></span></p><p class="c0"><span>Save your changes with </span><span c lass="c1">File &gt; Save</span><span>. You have completed all of the step 1 task s.</span></p><h3 class="c9 c0"><a name="h.lz56mhvll7k0"></a><span>Run the revise d version of the app.</span></h3><p class="c6 c0 c7"><span></span></p><p class=" c0 c7"><span>Run the app again</span><span>, and type in the document. As you ty pe, the word count updates at the bottom of the page:</span></p><p class="c0 c7" ><img height="390" src="images/image22.png" width="539"></p><p class="c6 c0"><sp an></span></p><p class="c0"><span>Congratulations! You&rsquo;ve completed the fi rst step.</span></p><h1 class="c8 c0"><a name="h.nxg0ahyrlxhi"></a></h1><hr styl e="page-break-before:always;display:none;"><h1 class="c8 c0"><a name="h.bl9vt9tu eqdf"></a></h1><h1 class="c0"><a name="h.bdr5squ6r500"></a><span>Step 2: Create a sidebar to list the documents</span></h1><p class="c6 c0 c7"><span></span></p> <p class="c0 c7"><span>The family of Web Component specifications, such as custo m elements and HTML imports, give the web developer real encapsulation of the st ructure, style, and behaviors of elements in the DOM. With help from the Web UI package, you can make your own tags!</span></p><p class="c6 c0 c7"><span></span> </p><p class="c0 c7"><span>In this step, using the </span><span>&lt;element&gt; tag,</span><span>&nbsp;you create a custom element to implement the behavior and view of a sidebar that lists the documents. Then, you use the new custom elemen t to create a sidebar in the Writer app.</span></p><h2 class="c0"><a name="h.k74 i547r3lz2"></a><span>What you will learn</span></h2><ol class="c10 lst-kix_kvgsl 0s9rzo4-0 start" start="1"><li class="c16 c11 c0"><span>Define custom elements.< /span></li><li class="c16 c11 c0"><span>Import HTML into HTML.</span></li><li cl ass="c16 c11 c0"><span>Use custom elements.</span></li><li class="c16 c11 c0"><s pan>One-line functions.</span></li></ol><h2 class="c0"><a name="h.q4bjn1j36hoo"> </a><span>Concepts overview</span></h2><h3 class="c0"><a name="h.mvtayj1q6so5">< /a><span>Define c</span><span>ustom elements</span></h3><p class="c6 c0 c7"><spa n></span></p><p class="c0 c7"><span>A custom </span><span>element </span><span>e xtends the lexicon of HTML</span><span>.</span><span>&nbsp;A custom element defi nition encapsulates the structure (the HTML), styles (CSS), and behavior (Dart o r JavaScript code) of a new kind of element. For example, you can extend </span> <span>&lt;button&gt;</span><span>&nbsp;to create </span><span>a</span><span>&nbs p;</span><span>&lt;fancy-button&gt;</span><span>&nbsp;tag, with new custom behav iors and appearance.</span></p><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>By convention, custom element names begin with </span><span>x-. F</sp an><span>or example </span><span>&lt;x-flower&gt;</span><span>. Custom element n ames </span><span class="c15">must</span><span>&nbsp;have a hyphen (-) in their name, such as &lt;fancy-button&gt;. Following the </span><span>x-</span><span>&n bsp;naming convention ensures that your custom element &nbsp;names always have a hyphen.</span></p><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>T he new </span><span>&lt;element&gt;</span><span>&nbsp;tag allows you to declare a new element (using HTML to declare HTML, I like it!) Here is an example:</span ></p><p class="c6 c0 c7"><span></span></p><p class="c11 c0 c7"><span class="c2"> &lt;element name=&quot;x-comment&quot; extends=&quot;div&quot; constructor=&quot ;CommentComponent&quot;&gt;</span></p><p class="c11 c0 c7"><span class="c2">&nbs p; &lt;template&gt;</span></p><p class="c11 c0 c7"><span class="c2">&nbsp; &nbsp ; &lt;div class=&quot;name&quot;&gt;{{name}}&lt;/div&gt;</span></p><p class="c11 c0 c7"><span class="c2">&nbsp; &nbsp; &lt;div class=&quot;comment&quot;&gt;&lt; content&gt;&lt;/content&gt;&lt;/div&gt;</span></p><p class="c11 c0 c7"><span cla ss="c2">&nbsp; &lt;/template&gt;</span></p><p class="c11 c0 c7"><span class="c2" >&nbsp;</span><span class="c2">&nbsp;&lt;script type=&quot;application/dart&quot ;&gt;</span></p><p class="c11 c0 c7"><span class="c2">&nbsp; &nbsp; import &#39; package:web_ui/web_ui.dart&#39;;</span></p><p class="c11 c0 c7"><span class="c2" >&nbsp; &nbsp; class CommentComponent extends WebComponent {</span></p><p class= "c11 c0 c7"><span class="c2">&nbsp; &nbsp; &nbsp; String name;</span></p><p clas s="c11 c0 c7"><span class="c2">&nbsp; &nbsp; &nbsp; String comment;</span></p><p class="c11 c0 c7"><span class="c2">&nbsp; &nbsp; }</span></p><p class="c11 c0 c 7"><span class="c2">&nbsp; &lt;/script&gt;</span><sup><a href="#cmnt1" name="cmn t_ref1">[a]</a></sup></p><p class="c11 c0 c7"><span class="c2">&lt;/element&gt;< /span></p><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>The elemen t tag defines a new kind of HTML element. To create an instance of a custom elem ent use the element name as you would any other HTML tag. To create an instance of the element defined above, write &lt;x-comment&gt;. A custom element instance </span><span class="c15">must</span><span>&nbsp;have a closing tag &lt;/x-comme nt&gt;.</span></p><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>Wi thin the template definition above, notice the &lt;content&gt; tag. When an &lt; x-comment&gt; element is instantiated, you can use other HTML elements between < /span><span>&lt;x-comment&gt; and &lt;/x-comment&gt;, a paragraph, a span, a lis t, for example. Those elements replace the &lt;content&gt; tag for that instanti ation. </span><span>Using attributes, you can filter for specific elements to re place the &lt;content&gt; tag.</span></p><h3 class="c0"><a name="h.cu2zzp8exzxx" ></a><span>Import HTML into HTML</span></h3><p class="c6 c0"><span></span></p><p class="c0"><span>To use a custom element, you often </span><span class="c15">im port</span><span>&nbsp;the HTML that contains the </span><span>&lt;element&gt;</ span><span>&nbsp;tag. Luckily, HTML has a method for including resources: the </ span><span>&lt;link&gt;</span><span>&nbsp;tag. Here is an example:</span></p><p class="c6 c0"><span></span></p><p class="c11 c0"><span class="c2">&lt;link rel=& quot;import&quot; href=&quot;comment_component.html&quot;&gt;</span></p><p class ="c6 c0"><span></span></p><p class="c0"><span>T</span><span>he </span><span>&lt; link&gt;</span><span>&nbsp;tag must appear in the </span><span>&lt;head&gt;</spa n><span>&nbsp;of the document.</span></p><p class="c6 c0"><span></span></p><h3 c lass="c0"><a name="h.9ahc7aijhm6g"></a><span>Use custom elements</span></h3><p c lass="c6 c0"><span></span></p><p class="c0"><span>Once you have imported the cus tom element, you can use it in your document. Here is an example:</span></p><p c lass="c6 c0"><span></span></p><p class="c11 c0"><span class="c2">&lt;ul&gt;</spa n></p><p class="c11 c0"><span class="c2">&nbsp; &lt;li&gt;&lt;x-comment name=&qu ot;Bob&quot;&gt;I totally agree!&lt;/x-comment&gt;&lt;/li&gt;</span></p><p class ="c11 c0"><span class="c2">&nbsp; &lt;li&gt;&lt;x-comment name=&quot;Alice&quot; &gt;I totally disagree!&lt;/x-comment&gt;&lt;/li&gt;</span></p><p class="c11 c0" ><span class="c2">&lt;/ul&gt;</span></p><h3 class="c9 c0"><a name="h.w7is3otkoy1 o"></a><span>One-line functions</span></h3><p class="c6 c0"><span></span></p><p class="c0"><span>Dart makes it easy and terse to write one-line functions with t he &quot;fat arrow&quot; syntax. Here is an example:</span></p><p class="c6 c0"> <span></span></p><p class="c11 c0"><span class="c2">int nextNumber() =&gt; i++;< /span></p><p class="c6 c0"><span></span></p><p class="c0"><span>The above code i s syntactic sugar for:</span></p><p class="c6 c0"><span></span></p><p class="c11 c0"><span class="c2">int nextNumber() {</span></p><p class="c11 c0"><span class ="c2">&nbsp; return i++;</span></p><p class="c11 c0"><span class="c2">}</span></ p><h2 class="c0"><a name="h.lx7xe3hizh5u"></a><span>Walkthrough</span></h2><h3 c lass="c0"><a name="h.nnxh8c8g9rvf"></a><span>The custom element&#39;s file</span ></h3><p class="c6 c0"><span></span></p><p class="c0"><span>First, create a new file for the custom element inside of the </span><span class="c1">web/</span><sp an>&nbsp;directory.</span></p><p class="c6 c0"><span></span></p><ol class="c10 l st-kix_57tjkabqizo2-0 start" start="1"><li class="c11 c0 c16"><span>Right-click on the </span><span class="c1">web</span><span>&nbsp;directory and select &quot; </span><span class="c1">New File</span><span>&quot;.</span></li><li class="c16 c 11 c0"><span>Name this file &quot;document_item.html&quot;. Dart Editor provides some boilerplate code. Delete it.</span></li><li class="c16 c11 c0"><span>Open </span><span class="c1">__for_later/document_item.html</span><span>, copy its co ntents, and paste it into </span><span class="c1">web/document_item.html</span>< span>.</span></li></ol><p class="c6 c0"><span></span></p><h3 class="c9 c0"><a na me="h.kvlk5fbt87kg"></a><span>Declare the custom element</span></h3><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>Ensure you are working in </span ><span class="c1">web/document_item.html</span><span>, and add the following cod e:</span></p><p class="c6 c0 c7"><span></span></p><a href="#" name="b009468215a0 c56688786bc71c4766d48ed7b514"></a><a href="#" name="5"></a><table cellpadding="0 " cellspacing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class="c 5 c0 c7"><span class="c2">// web/document_item.html</span></p><p class="c5 c0 c7 "><span class="c2">&lt;html&gt;&lt;body&gt;</span></p><p class="c5 c0 c7"><span class="c2">&nbsp; &lt;!-- STEP 2: Define a custom element. &rarr;</span></p><p c lass="c6 c5 c0 c7"><span class="c2"></span></p><p class="c5 c0 c7"><span class=" c2 c1">&nbsp; &lt;element name=&quot;x-document-item&quot; constructor=&quot;Doc umentItem&quot;</span></p><p class="c5 c0 c7"><span class="c2 c1">&nbsp; &nbsp; &nbsp; extends=&quot;div&quot; </span><span class="c2 c1">apply-author-styles</s pan><span class="c2 c1">&gt;</span></p><p class="c6 c5 c0 c7"><span class="c2 c1 "></span></p><p class="c5 c0 c7"><span class="c2 c1">&nbsp; &nbsp; &lt;!-- STEP 2: Define the DOM template for our custom element --&gt;</span></p><p class="c5 c0 c7"><span class="c2 c1">&nbsp; &nbsp; &lt;template&gt;</span></p><p class="c6 c5 c0 c7"><span class="c2 c1"></span></p><p class="c5 c0 c7"><span class="c2 c1 ">&nbsp; &nbsp; &lt;/template&gt;</span></p><p class="c6 c5 c0 c7"><span class=" c2 c1"></span></p><p class="c5 c0 c7"><span class="c2 c1">&nbsp; &nbsp; &lt;!-- STEP 2: Add the script tag that defines this component&#39;s behaviour. --&gt;</ span></p><p class="c5 c0 c7"><span class="c2 c1">&nbsp; &nbsp; &lt;script type=& quot;application/dart&quot;&gt;</span></p><p class="c6 c5 c0 c7"><span class="c2 c1"></span></p><p class="c5 c0 c7"><span class="c2 c1">&nbsp; &nbsp; &lt;/scrip t&gt;</span></p><p class="c5 c0 c7"><span class="c2 c1">&nbsp; &lt;/element&gt;< /span></p><p class="c6 c5 c0 c7"><span class="c2"></span></p><p class="c5 c0 c7" ><span class="c2">&lt;/body&gt;&lt;/html&gt;</span></p><p class="c5 c0 c7"><span class="c2">&hellip;</span></p></td></tr></tbody></table><p class="c18 c6 c0 c7" ><span class="c2"></span></p><p class="c0"><span>A few notes about the code abov e:</span></p><p class="c6 c0"><span></span></p><ul class="c10 lst-kix_bnpbicbhbb ru-0 start"><li class="c16 c11 c0"><span>The name of the element is </span><span >x</span><span>-document-item</span><span>.</span></li><li class="c16 c11 c0"><s pan>The custom element extends </span><span>&lt;div&gt;</span><span>. That is, < /span><span>x-document-item</span><span>&nbsp;is a special kind of div.</span></ li><li class="c16 c11 c0"><span>Some behavior of the </span><span>x-document-ite m</span><span>&nbsp;is implemented by a </span><span>Dart class named </span><sp an>DocumentItem</span><span>. You will create and include this class below.</spa n></li><li class="c16 c11 c0"><span>The </span><span>apply-author-styles</span>< span>&nbsp;attribute indicates that styles from the larger HTML document apply t o the contents of the custom component.</span></li></ul><p class="c6 c0"><span>< /span></p><p class="c0"><span>Notice the </span><span>&lt;template&gt;</span><sp an>&nbsp;tag inside of </span><span>&lt;element&gt;</span><span>. A custom eleme nt can define its own structure with the </span><span>&lt;template&gt;</span><sp an>&nbsp;tag. Fill in this template now.</span></p><h3 class="c0"><a name="h.l68 l6dl0jzre"></a><span>The template</span></h3><p class="c6 c0"><span></span></p>< p class="c0"><span>Add the code for the template as shown. Y</span><span>ou need to also add the comments</span><span>&nbsp;for STEP 3 just as we have them in t he code. You need the comments to orient yourself later when you implement Step 3.</span></p><p class="c6 c0"><span></span></p><a href="#" name="7042cc209fcf1d4 7ccfc4265721fd964e76e6f4f"></a><a href="#" name="6"></a><table cellpadding="0" c ellspacing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c 0"><span class="c2">// web/document_item.html</span></p><p class="c5 c0"><span c lass="c2">&hellip;</span></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &lt ;!-- STEP 2: Define the DOM template for our custom element --&gt;</span></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &lt;template&gt;</span></p><p class ="c6 c5 c0"><span class="c2"></span></p><p class="c5 c0"><span class="c1 c2">&nb sp; &nbsp; &nbsp; </span><span class="c2 c1">&lt;!-- STEP 3: On click, select th e document. --&gt;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &lt;div class=&quot;item {{isActiveClass}}&quot;&gt;</span></p><p class=" c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">&n bsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;div class=&quot;title&quot;&gt;{{title}}&lt ;/div&gt;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &n bsp; &nbsp; &lt;div class=&quot;modified&quot;&gt;{{modified}}&lt;/div&gt;</span ></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span c lass="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- STEP 3: Add delete butto n. --&gt;</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class= "c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &lt;/div&gt;</span></p><p class ="c5 c0"><span class="c2">&nbsp; &nbsp; &lt;/template&gt;</span></p><p class="c5 c0"><span class="c2">&hellip;</span></p></td></tr></tbody></table><p class="c6 c0"><span></span></p><p class="c0"><span>You can use one-way data binding in a t emplate. Each time a custom element is instantiated, an instance of the Dart cla ss is created and associated with the custom element. Data bindings in the templ ate are bound to fields in that Dart instance. For example, </span><span>{{title }}</span><span>&nbsp;binds to a field from the instance of </span><span>Document Item that is created when an element of this type is created. </span><span>It&#3 9;s a good idea to move all logic into the Dart class, and just use fields and g etters for the HTML.</span></p><p class="c6 c0"><span></span></p><p class="c0">< span>Speaking of the class, let&#39;s add that now!</span></p><p class="c6 c0">< span></span></p><p class="c0"><span class="c33 c1">The script</span></p><p class ="c6 c0"><span></span></p><p class="c0"><span>Use a </span><span>&lt;script&gt;< /span><span>&nbsp;tag to declare the Dart class that goes with the custom elemen t. The Dart class contains any state and behavior applicable to the view.</span> </p><p class="c6 c0"><span></span></p><p class="c0"><span>Ensure you are still e diting </span><span class="c1">web/document_item.html</span><span>, and add the following code inside the &lt;script&gt; and &lt;/script&gt; tags:</span></p><p class="c6 c0"><span></span></p><a href="#" name="38b92f10e28849103dac69976e50632 7495960f7"></a><a href="#" name="7"></a><table cellpadding="0" cellspacing="0" c lass="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0"><span class=" c2">// web/document_item.html</span></p><p class="c5 c0"><span class="c2">&helli p;</span></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &lt;!-- STEP 2: Add the script tag that defines this component&#39;s behaviour. --&gt;</span></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &lt;script type=&quot;application/ dart&quot;&gt;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbs p; import &#39;package:web_ui/web_ui.dart&#39;;</span></p><p class="c6 c5 c0"><s pan class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; import &#39;package:writer/document.dart&#39;;</span></p><p class="c5 c0" ><span class="c2 c1">&nbsp; &nbsp; &nbsp; import &#39;app.dart&#39; as app;</spa n></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; /**</span></p><p class="c5 c0"><span class="c 2 c1">&nbsp; &nbsp; &nbsp; &nbsp;* This Dart class defines the behavior and</spa n></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp;* state of the custom element.</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp ; &nbsp; &nbsp;*/</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; & nbsp; class DocumentItem extends WebComponent {</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; Document </span><span class="c2 c1">d oc</span><span class="c2 c1">;</span></p><p class="c5 c0"><span class="c2 c1">&n bsp; &nbsp; &nbsp; &nbsp; </span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; String get title =&gt; doc.title.isEmpty ? &#39;Untitled&# 39; : doc.title;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &n bsp; &nbsp; </span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; String get modified =&gt; </span><span class="c2 c1">dateFormat</span><s pan class="c2 c1">.format(doc.modified);</span></p><p class="c5 c0"><span class= "c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; </span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; String get isActiveClass =&gt; doc == app.active Document ? &#39;active</span><span class="c2 c1">&#39; :</span><span class="c2 c 1">&nbsp;&#39;&#39;;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp ; &nbsp; }</span></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &lt;/script &gt;</span></p><p class="c5 c0"><span class="c2">&hellip;</span></p></td></tr></ tbody></table><p class="c6 c0"><span></span></p><p class="c0"><span class="c1">N ote</span><span>: Dart Editor doesn&#39;t yet fully support Dart code embedded i nside of </span><span>&lt;script&gt;</span><span>&nbsp;tags. For example, you ca n&#39;t use code completion inside of a </span><span>&lt;script&gt;</span><span> &nbsp;tag yet. We anticipate that the editor will have this functionality in tim e for 1.0.</span></p><p class="c6 c0"><span class="c2"></span></p><p class="c0"> <span>A few notes about the code above:</span></p><ul class="c10 lst-kix_iqyc5gy 523tq-0 start"><li class="c16 c11 c0"><span>The </span><span>DocumentItem</span> <span>&nbsp;class acts as a </span><span class="c15">View Model</span><span>, en capsulating any state used by the view, and linking model classes like Document to the view. We use getters for </span><span>title</span><span>, modified, and < /span><span>isActiveClass</span><span>&nbsp;</span><span>because</span><span>&nb sp;calling a getter is shorter than calling a method.</span></li><li class="c16 c11 c0"><span>A </span><span>DocumentItem</span><span>&nbsp;uses a </span><span> Document</span><span>&nbsp;object, called </span><span>doc</span><span>, for its data model. The </span><span>doc</span><span>&nbsp;field gets initialized when the custom element gets instantiated. You&rsquo;ll see this later when you add t he sidebar in the HTML code.</span></li><li class="c16 c11 c0"><span>The </span> <span>Document</span><span>&nbsp;class defines a top-level object, called </span ><span>dateFormat</span><span>, used to format the modified date. (Look at the b ottom of </span><span class="c1">lib/document.dart</span><span>&nbsp;</span><spa n>for the code that creates </span><span>dateFormat</span><span>.) The </span><s pan>DateFormat</span><span>&nbsp;class is provided by the </span><span>intl</spa n><span>&nbsp;package.</span></li></ul><p class="c6 c0"><span></span></p><p clas s="c0"><span>&nbsp;Save your changes to </span><span class="c1">web/document_ite m.html</span><span>.</span></p><h3 class="c0"><a name="h.pg2b8doo4y91"></a><span >Import the custom element into the main HTML</span></h3><p class="c6 c0"><span> </span></p><p class="c0"><span>To create instances of &lt;x-document-item&gt;, t he main application&#39;s HTML needs to import the code that defines the custom &lt;x-document-item&gt; tag. Luckily, HTML already has a mechanism to link to ot her resources: the &lt;link&gt; tag!</span></p><p class="c6 c0"><span></span></p ><p class="c0"><span>Open </span><span class="c1">web/index.html</span><span>&nb sp;and add the following code:</span></p><p class="c6 c0"><span></span></p><a hr ef="#" name="090acfcf20bc970a0ebbc86e3935b6445f53431d"></a><a href="#" name="8"> </a><table cellpadding="0" cellspacing="0" class="c13"><tbody><tr class="c22"><t d class="c20"><p class="c5 c0"><span class="c2">// web/index.html</span></p><p c lass="c5 c0"><span class="c2">&hellip;</span></p><p class="c5 c0"><span class="c 2">&nbsp; &nbsp; &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; h ref=&quot;css.css&quot;&gt;</span></p><p class="c6 c5 c0"><span class="c2"></spa n></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &lt;!-- STEP 2: Import the document item component. --&gt;</span></p><p class="c5 c0"><span class="c2">&nb sp; &nbsp; </span><span class="c2 c1">&lt;link rel=&quot;import&quot; href=&quot ;document_item.html&quot;&gt;</span></p><p class="c6 c5 c0"><span class="c2"></s pan></p><p class="c5 c0"><span class="c2">&nbsp; &lt;/head&gt;</span></p><p clas s="c5 c0"><span class="c2">&hellip;</span></p></td></tr></tbody></table><p class ="c6 c0"><span></span></p><h3 class="c0"><a name="h.eu70myeqpqpx"></a><span>Add the sidebar</span></h3><p class="c6 c0"><span></span></p><p class="c0"><span>Wit h the custom element implemented, and imported, time to use &lt;x-document-item& gt;!</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Make sure y ou are still editing </span><span class="c1">web/index.html</span><span>. And</s pan><span>&nbsp;yes, </span><span>you need to write all those comments</span><sp an>&nbsp;just as we have them in the code. You will add more functionality in th e following steps, so you need the comments to ensure you can orient yourself la ter.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Add the fol lowing code:</span></p><p class="c6 c0"><span></span></p><a href="#" name="d70e4 3e44b21a0f2da93cec4f6a9b1f60f8acb67"></a><a href="#" name="9"></a><table cellpad ding="0" cellspacing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p c lass="c5 c0"><span class="c2">// web/index.html</span></p><p class="c5 c0"><span class="c2">&hellip;</span></p><p class="c5 c0"><span class="c2">&nbsp; &lt;body &gt;</span></p><p class="c6 c5 c0"><span class="c2"></span></p><p class="c5 c0"> <span class="c2">&nbsp; &nbsp; &lt;!-- STEP 2: Add a sidebar to the application. --&gt;</span></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; </span><span c lass="c2 c1">&lt;section id=&quot;sidebar&quot; class=&quot;{{sidebarClass}}&quo t;&gt;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &lt;d iv class=&quot;toolbar&quot;&gt;</span></p><p class="c6 c5 c0"><span class="c2 c 1"></span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; & lt;!-- STEP 3: Add a button to create a new document. --&gt;</span></p><p class= "c6 c5 c0"><span class="c2 c1"></span></p><p class="c6 c5 c0"><span class="c2 c1 "></span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &l t;div class=&quot;input-wrap&quot;&gt;</span></p><p class="c5 c0"><span class="c 2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- STEP 4: Add a input box to filt er documents. --&gt;</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></ p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/div&gt;< /span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &lt;/div&gt; </span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0">< span class="c2 c1">&nbsp; &nbsp; &nbsp; &lt;!-- Documents list --&gt;</span></p> <p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &lt;div class=&quot;it ems&quot;&gt;</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p cl ass="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- STEP 3: Iter ate over list of documents. --&gt;</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- STEP 2: Add the active document to the sidebar. --&gt;</span></p><p cla ss="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="c 2 c1">&lt;x-document-item doc=&quot;{{activeDocument}}&quot;&gt;&lt;/x-document- item&gt;</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class=" c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &lt;/div&gt;</span></p><p class= "c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">& nbsp; &nbsp; &nbsp; &lt;!-- Also check out dartlang.org! --&gt;</span></p><p cla ss="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &lt;div class=&quot;footer&q uot;&gt;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nb sp; &lt;a href=&quot;https://github.com/dart-lang/io-2013-dart-codelab&quot;&gt; View Source&lt;/a&gt;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbs p; &nbsp; &lt;/div&gt;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nb sp; &lt;/section&gt;</span></p><p class="c6 c5 c0"><span class="c2"></span></p>< p class="c5 c0"><span class="c2">&nbsp; &nbsp; &lt;!-- Editing window --&gt;</sp an></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &lt;section id=&quot;main &quot; class=&quot;{{mainClass}}&quot;&gt;</span></p><p class="c5 c0"><span clas s="c2">&hellip;</span></p></td></tr></tbody></table><p class="c6 c0"><span></spa n></p><p class="c0"><span>Take a look at </span><span>&lt;x-document-item doc=&q uot;{{activeDocument}}&quot;&gt;</span><span>. The active document is bound into the </span><span>x-document-item</span><span>&nbsp;tag via the </span><span>doc </span><span>&nbsp;attribute. </span><span>The </span><span>activeDocument</span ><span>&nbsp;object is a top-level variable from app.dart.</span></p><p class="c 6 c0"><span></span></p><p class="c0"><span>Save your changes in </span><span cla ss="c1">web/index.html</span><span>&nbsp;and in </span><span class="c1">web/docu ment_item.html</span><span>, if you haven&rsquo;t already done so.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Depending on the order in whi ch you saved the files, you might see warnings or errors in Dart Editor complain ing about unknown custom elements. Try running </span><span class="c1">Tools &gt ; Reanalyze Sources</span><span>.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Run </span><span>the app. On the left side of the app is a sid ebar that contains a document.</span></p><p class="c6 c0"><span></span></p><p cl ass="c0"><img height="449" src="images/image26.png" width="558"></p><p class="c6 c0"><span></span></p><hr style="page-break-before:always;display:none;"><p clas s="c6 c0"><span></span></p><h1 class="c0"><a name="h.yjqv0zg28trz"></a><span>Ste p 3: Add the ability to create, delete, and select documents in the list</span>< /h1><p class="c6 c0"><span></span></p><p class="c0 c7"><span>In this step, you&r squo;ll implement support for creating, deleting, and selecting documents. Your code will use an observable list to keep track of which documents exist.</span>< /p><h2 class="c0"><a name="h.plhwv16qfiu3"></a><span>What you will learn</span>< /h2><p class="c6 c0 c7"><span></span></p><ol class="c10 lst-kix_1c0w7icorqz1-0 s tart" start="1"><li class="c16 c11 c0 c7"><span>Using Web UI&rsquo;s</span><span >&nbsp;toObservable()</span><span>&nbsp;function to make a list observable.</spa n></li><li class="c16 c11 c0 c7"><span>Using </span><span>&lt;template iterate.. .&gt;</span><span>&nbsp;to </span><span>create an element </span><span>for each item in a list.</span></li></ol><h2 class="c0"><a name="h.t4xdkmcfgxgs"></a><spa n>Concepts overview</span></h2><h3 class="c9 c0"><a name="h.9plpwum2ndhq"></a><s pan>The toObservable() function</span></h3><p class="c6 c0"><span></span></p><p class="c0"><span>Use the </span><span>toObservable()</span><span>&nbsp;function from the Web UI library to make a List or a Map observable. In the Writer app, m aking the list of documents observable enables Web UI to update your app&rsquo;s UI whenever a document is created or deleted.</span></p><h3 class="c9 c0"><a na me="h.q05y2y7gn8pj"></a><span>Template iterate</span></h3><p class="c6 c0 c7"><s pan></span></p><p class="c0"><span>Template loops allow iteration over Iterable Dart objects, such as Collections. To create a loop that operates on each item i n an Iterable object, use the iterate attribute in a &lt;template&gt; tag. The c ode below displays the alphabet by looping over a list of strings, of which each string contains a single character.</span></p><p class="c6 c0"><span></span></p ><p class="c11 c0"><span class="c2">// in Dart code</span></p><p class="c11 c0"> <span class="c2">List&lt;String&gt; alphabet = toObservable(&lsquo;abcdefghijklm nopqrstuvwxyz&rsquo;.split(&#39;&#39;));</span></p><p class="c6 c11 c0"><span cl ass="c2"></span></p><p class="c11 c0"><span class="c2">// in HTML code</span></p ><p class="c11 c0"><span class="c2">&lt;template iterate=&quot;letter in alphabe t&quot;&gt; {{letter}} &lt;/template&gt;</span></p><h2 class="c0"><a name="h.k15 z6n5pmnu0"></a><span>Walkthrough</span></h2><p class="c6 c0 c7"><span></span></p ><p class="c0 c7"><span>You&rsquo;ll be editing three files this time: </span><s pan class="c1">web/app.dart</span><span>, </span><span class="c1">web/</span><sp an class="c1">index.html</span><span>, and </span><span class="c1">web/</span><s pan class="c1">document_item.html</span><span>.</span></p><p class="c6 c0 c7"><s pan></span></p><p class="c0 c7"><span>(</span><span class="c1">Optional</span><s pan>: Remember that if necessary, you can start with clean files for each step. If you want to, close the directory for step 2 and open the &nbsp;</span><span c lass="c1">io-2013-codelab-step3</span><span>&nbsp;directory now.</span><span>)</ span></p><h3 class="c0"><a name="h.1jxajn4fbphg"></a><span>Add an observable lis t of documents</span></h3><p class="c6 c0 c7"><span></span></p><p class="c0 c7"> <span>Open </span><span class="c1">web/app.dart </span><span>and add the line of code shown below that creates an empty, observable list of documents.</span></p ><p class="c6 c0 c7"><span></span></p><a href="#" name="003e7a132719843844266db1 96a529a3a66c108e"></a><a href="#" name="10"></a><table cellpadding="0" cellspaci ng="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0 c7"><s pan class="c2">// web/app.dart</span></p><p class="c6 c5 c0 c7"><span class="c2" ></span></p><p class="c5 c0 c7"><span class="c2">// STEP 3: Add an observed list of documents.</span></p><p class="c5 c0 c7"><span class="c2 c1">final List&lt;D ocument&gt; documents = toObservable([]);</span></p></td></tr></tbody></table><p class="c6 c0 c7"><span></span></p><h3 class="c9 c0"><a name="h.rcpcobm9frxp"></ a><span>Add functions for creating, deleting, and selecting documents</span></h3 ><p class="c6 c0"><span></span></p><p class="c0"><span>First, let&rsquo;s implem ent </span><span>creating documents</span><span>.</span></p><p class="c6 c0"><sp an></span></p><p class="c0"><span>Continue editing </span><span class="c1">web/a pp.dart</span><span>.</span></p><p class="c6 c0"><span></span></p><p class="c0"> <span>Add the </span><span>createDocument()</span><span>&nbsp;function to </span ><span class="c1">web/app.dart </span><span>where indicated by the comments. The new function calls another function, called </span><span>selectDocument(), whic h</span><span>&nbsp;is not defined yet and about which Dart Editor issues warnin gs. You&rsquo;ll add that function just below, so ignore the warnings for now.</ span></p><p class="c6 c0"><span></span></p><a href="#" name="112b879928f02a95f8b cca548aa41841e8a73a8c"></a><a href="#" name="11"></a><table cellpadding="0" cell spacing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0"> <span class="c2">// web/app.dart</span></p><p class="c6 c5 c0"><span class="c2"> </span></p><p class="c5 c0"><span class="c2">// STEP 3: Create a new document.</ span></p><p class="c5 c0"><span class="c2 c1">void createDocument() {</span></p> <p class="c5 c0"><span class="c2 c1">&nbsp; // Create a new document.</span></p> <p class="c5 c0"><span class="c2 c1">&nbsp; var doc = new Document(&#39;Untitled &#39;, &#39;&#39;);</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; docume nts.add(doc);</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; selectDocume nt(doc);</span></p><p class="c5 c0"><span class="c2 c1">}</span></p></td></tr></ tbody></table><p class="c6 c0"><span></span></p><p class="c0"><span>Next, let&rs quo;s implement deleting a document.</span></p><p class="c6 c0"><span></span></p ><a href="#" name="bc8ccafb5db8bb95790c033c16fcedeb2df622ab"></a><a href="#" nam e="12"></a><table cellpadding="0" cellspacing="0" class="c13"><tbody><tr class=" c22"><td class="c20"><p class="c5 c0"><span class="c2">// web/app.dart</span></p ><p class="c6 c5 c0"><span class="c2"></span></p><p class="c5 c0"><span class="c 2">// STEP 3: Add code to delete a document</span></p><p class="c5 c0"><span cla ss="c2 c1">void deleteDocument(Document doc) {</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; documents.remove(doc);</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">&nbsp; // STEP 5: Also delete from local storage.</span></p><p class="c5 c0"><span class="c2 c1">} </span></p></td></tr></tbody></table><p class="c6 c0"><span></span></p><p class= "c0"><span>Now</span><span>, let&rsquo;s implement setting the currently selecte d, or </span><span class="c15">active</span><span>,</span><span>&nbsp;document. </span></p><p class="c6 c0"><span></span></p><a href="#" name="c3a16027a88e8921f 4c86fe09a9c48ae6bd5735d"></a><a href="#" name="13"></a><table cellpadding="0" ce llspacing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0 "><span class="c2">// web/app.dart</span></p><p class="c6 c5 c0"><span class="c2 "></span></p><p class="c5 c0"><span class="c2">// STEP 3: Add code to select a d ocument.</span></p><p class="c5 c0"><span class="c2 c1">void selectDocument(Docu ment doc, </span><span class="c2 c1">{bool markActive: false}</span><span class= "c2 c1">) {</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; if (documents. isEmpty) {</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; activeDo cument = null;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; } else if ( doc != null &amp;&amp; documents.contains(doc) &amp;&amp; doc != activeDocument) {</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; // Change active document.</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; activeDo cument = doc;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; } else if (a ctiveDocument != null &amp;&amp; documents.contains(activeDocument)) {</span></p ><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; // Stay on the active docume nt and display the editing window.</span></p><p class="c5 c0"><span class="c2 c1 ">&nbsp; &nbsp; contentActive = markActive &amp;&amp; doc == activeDocument;</sp an></p><p class="c5 c0"><span class="c2 c1">&nbsp; } </span><span class="c2 c1"> else</span><span class="c2 c1">&nbsp;{</span></p><p class="c5 c0"><span class="c 2 c1">&nbsp; &nbsp; // Fall back to the last document.</span></p><p class="c5 c0 "><span class="c2 c1">&nbsp; &nbsp; activeDocument = documents.last;</span></p>< p class="c5 c0"><span class="c2 c1">&nbsp; }</span></p><p class="c5 c0"><span cl ass="c2 c1">}</span></p></td></tr></tbody></table><p class="c6 c0"><span></span> </p><p class="c0"><span>A quick note about Dart syntax. The second argument, mar kActive, is optional as indicated by the curly brackets. If the caller does not provide the argument, the value is </span><span>false.</span></p><p class="c6 c0 "><span></span></p><p class="c0 c7"><span>Save </span><span class="c1">web/app.d art</span><span>. The Dart Editor warnings should go away.</span></p><h3 class=" c9 c0"><a name="h.t585uroxp75j"></a><span>Add document initialization to main()< /span></h3><p class="c6 c0"><span></span></p><p class="c0"><span>We need a littl e more Dart code</span><span>&nbsp;to create</span><span>&nbsp;and select the fi rst document.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Fi nd the </span><span>main()</span><span>&nbsp;function and add two lines of code: </span></p><p class="c6 c0"><span></span></p><a href="#" name="636d1459fe267ed85 fead5b269c905a57617660a"></a><a href="#" name="14"></a><table cellpadding="0" ce llspacing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0 "><span class="c2">// web/app.dart</span></p><p class="c6 c5 c0"><span class="c2 "></span></p><p class="c5 c0"><span class="c2">void main() {</span></p><p class= "c5 c0"><span class="c2">&nbsp; // STEP 5: Initialize with all documents from lo cal storage.</span></p><p class="c6 c5 c0"><span class="c2"></span></p><p class= "c5 c0"><span class="c2">&nbsp; // STEP 3: Create a new document if there are no ne.</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; if (documents.isEmpty) createDocument();</span></p><p class="c6 c5 c0"><span class="c2"></span></p><p class="c5 c0"><span class="c2">&nbsp; // STEP 3: Select the first document in th e list of documents.</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; selec tDocument(documents.first);</span></p><p class="c5 c0"><span class="c2 c1">}</sp an></p></td></tr></tbody></table><p class="c6 c0"><span></span></p><p class="c0" ><span>Save </span><span class="c1">web/app.dart</span><span>.</span></p><p clas s="c6 c0"><span></span></p><p class="c0"><span>Now that we have </span><span>fun ctions that let us create, delete, and select </span><span>documents, we can cre ate elements that provide a UI to use that functionality.</span></p><h3 class="c 9 c0"><a name="h.svl18lwba5l4"></a><span>Create new elements in web/index.html</ span></h3><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>Open </spa n><span class="c1">web/index.html</span><span>.</span></p><p class="c6 c0 c7"><s pan></span></p><p class="c0 c7"><span>Create a + button, and set our new </span> <span>createDocument()</span><span>&nbsp;function as the button&rsquo;s mouse cl ick callback function.</span></p><p class="c6 c0"><span></span></p><a href="#" n ame="7ba1693380e842805638eca678d2e0155401c2cc"></a><a href="#" name="15"></a><ta ble cellpadding="0" cellspacing="0" class="c13"><tbody><tr class="c22"><td class ="c20"><p class="c5 c0"><span class="c2">// web/index.html</span></p><p class="c 6 c5 c0"><span class="c2"></span></p><p class="c5 c0"><span class="c2">&nbsp; &n bsp; &nbsp; &lt;div class=&quot;toolbar&quot;&gt;</span></p><p class="c6 c5 c0"> <span class="c2"></span></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &nbs p; &nbsp; &lt;!-- STEP 3: Add a button to create a new document. --&gt;</span></ p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; </span><span class=" c2 c1">&nbsp; &lt;button on-click=&quot;createDocument()&quot;&gt;+&lt;/button&g t;</span></p><p class="c5 c0"><span class="c2">...</span></p></td></tr></tbody>< /table><p class="c6 c0"><span></span></p><p class="c0"><span>Delete the old code that created a single </span><span>&lt;x-document-item&gt;</span><span>, and re place it with code that creates one </span><span>&lt;x-document-item&gt;</span>< span>&nbsp;for each item in the documents list.</span></p><p class="c6 c0"><span ></span></p><a href="#" name="8e2e7b784dd6a79a105a04e54a79d0730d45d82a"></a><a h ref="#" name="16"></a><table cellpadding="0" cellspacing="0" class="c13"><tbody> <tr class="c22"><td class="c20"><p class="c5 c0"><span class="c2">// web/index.h tml</span></p><p class="c6 c5 c0"><span class="c2"></span></p><p class="c5 c0">< span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- STEP 3: Iterate over list of documents. --&gt;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;template iterate=&quot;doc in documents&quot;&gt;</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span class="c 2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- STEP 4: Hide documents that don &#39;t match search filter. --&gt;</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- Our custom document element! --&gt;</span></p><p class="c5 c0">< span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;x-document-item doc=&q uot;{{doc}}&quot;&gt;&lt;/x-document-item&gt;</span></p><p class="c5 c0"><span c lass="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/template&gt;</span></p><p class="c 6 c5 c0"><span class="c2 c23"></span></p><p class="c5 c0"><span class="c2 c23">& lt;!-- STEP 2: Add the active document to the sidebar. --&gt;</span></p><p class ="c5 c0"><span class="c2 c23">&lt;x-document-item doc=&quot;{{activeDocument}}&q uot;&gt;&lt;/x-document-item&gt;</span></p></td></tr></tbody></table><p class="c 6 c0"><span></span></p><p class="c0 c7"><span>Save </span><span class="c1">web/i ndex.html</span><span>.</span></p><h3 class="c9 c0"><a name="h.v26yzo8ksmbq"></a ><span>Add code to select a document and to delete a document</span></h3><p clas s="c6 c0"><span></span></p><p class="c0"><span>Open </span><span class="c1">web/ document_item.html</span><span>.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Now that we have </span><span>selectDocument()</span><span>&nbs p;and </span><span>deleteDocument() functions</span><span>, our custom component can use them. The following code uses the new selection function and adds an &l dquo;X&rdquo; button to </span><span>&lt;x-document-item&gt;</span><span>&nbsp;t hat deletes the item.</span></p><p class="c6 c0"><span></span></p><a href="#" na me="e9cd1b499b5eac19bda4a5eb9b038274db4f6e03"></a><a href="#" name="17"></a><tab le cellpadding="0" cellspacing="0" class="c13"><tbody><tr class="c22"><td class= "c20"><p class="c5 c0"><span class="c2">// web/document_item.html</span></p><p c lass="c6 c5 c0"><span class="c2"></span></p><p class="c5 c0"><span class="c2">&n bsp; &nbsp; &nbsp; &lt;!-- STEP 3: On click, select the document. --&gt;</span>< /p><p class="c32 c0"><span class="c2">&nbsp; &nbsp; &nbsp; </span><span class="c 2">&nbsp; </span><span class="c2 c23">&lt;div</span><span class="c2 c23">&nbsp;< /span><span class="c2 c23">class=</span><span class="c2 c23">&quot;item {{isActi veClass}}&quot;</span><span class="c2 c23">&gt;</span></p><p class="c0 c32"><spa n class="c2">&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="c2 c1">&lt;div clas s=&quot;item {{isActiveClass}}&quot;</span></p><p class="c5 c0"><span class="c2" >&nbsp; &nbsp; &nbsp; </span><span class="c2">&nbsp; &nbsp; &nbsp; </span><span class="c2 c1">&nbsp;</span><span class="c2 c1">on-click=&quot;app.selectDocument (doc, markActive: true)&quot;</span><span class="c2 c1">&gt;</span></p><p class= "c5 c0"><span class="c2">&hellip;</span></p><p class="c5 c0"><span class="c2">&n bsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- STEP 3: Add delete button. --&gt;</span ></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span ><span class="c2 c1">&lt;button class=&quot;delete&quot; on-click=&quot;</span>< span class="c2 c1">app.</span><span class="c2 c1">deleteDocument</span><span cla ss="c2 c1">(doc)&quot;&gt;&amp;times;&lt;/button&gt;</span></p></td></tr></tbody ></table><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>Save </span ><span class="c1">web/document_item.html</span><span>.</span></p><h3 class="c9 c 0"><a name="h.1e11ugbr3dv7"></a><span>Try out the new functionality</span></h3>< p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>Try it out! </span><s pan class="c45">Run the app.</span></p><ul class="c10 lst-kix_vvzditg8sno-0 star t"><li class="c16 c11 c0"><span>Click the + button to create a new document.</sp an></li><li class="c16 c11 c0"><span>Type in some text.</span></li><li class="c1 6 c11 c0"><span>Change the document name.</span></li><li class="c16 c11 c0"><spa n>Click on a document in the sidebar to select a document. A </span><span class= "c38 c1">red</span><span>&nbsp;vertical line appears on the left and its content s appears in the text area.</span></li><li class="c16 c11 c0"><span>Hover the mo use over a document in the sidebar and an &lsquo;X&rsquo; appears. Click the &ls quo;X&rsquo; to delete the document.</span></li></ul><p class="c6 c0"><span clas s="c2"></span></p><p class="c0"><img height="514" src="images/image07.png" width ="512"></p><p class="c6 c0"><span></span></p><h1 class="c8 c0"><a name="h.ajf00h xdo4zq"></a></h1><h1 class="c0"><a name="h.1lmhpmupb94f"></a><span>Step 4: Add a search bar</span></h1><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><sp an>In this step, you will learn how to connect an HTML input field to a Dart obj ect, and then conditionally display DOM elements based on the contents from the input field.</span></p><h2 class="c0"><a name="h.qrimtew7kc7q"></a><span>What yo u will learn</span></h2><p class="c6 c0"><span></span></p><ol class="c10 lst-kix _32zxnvl59py3-0 start" start="1"><li class="c16 c11 c0 c7"><span>Instantiate DOM elements based on conditionals.</span></li><li class="c16 c11 c0 c7"><span>Bind an input field to a Dart object (aka two-way data binding).</span></li></ol><h2 class="c0"><a name="h.ps3mbo8ceq0c"></a><span>Concepts overview</span></h2><h3 class="c0"><a name="h.8ja6vc9pug1j"></a><span>Template conditionals</span></h3>< p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>The contents of a </s pan><span>&lt;template&gt;</span><span>&nbsp;tag can be added to, or removed fro m, the DOM based on a </span><span class="c15">conditional</span><span>. If a co nditional is true, the contents of the </span><span>&lt;template&gt;</span><span >&nbsp;are added to the DOM (in other words, the contents are displayed on the p age). If the conditional is false, the contents are removed from the page.</span ></p><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>Here is a simpl e example of a conditional template:</span></p><p class="c6 c0 c7"><span></span> </p><p class="c11 c0 c7"><span class="c2">&lt;template if=&quot;user.</span><spa n class="c2">agreedToTOS</span><span class="c2">&quot;&gt;</span></p><p class="c 11 c0 c7"><span class="c2">&nbsp; Thanks for clicking agree!</span></p><p class= "c11 c0 c7"><span class="c2">&lt;/template&gt;</span></p><p class="c6 c11 c0 c7" ><span></span></p><p class="c0 c7"><span>Every time the conditional changes (fro m false to true, or from true to false), the contents are added or removed.</spa n></p><h3 class="c0"><a name="h.2ud8exsdflt4"></a><span>Field binding</span></h3 ><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>An HTML input field , such as a text input, can be bound to a Dart object. Whenever the input field& #39;s value changes, the </span><span>Dart object</span><span>&#39;s value </spa n><span>change</span><span>s. Whenever the Dart object&#39;s value changes, the input field changes. This is known as </span><span class="c15">two-way binding</ span><span>.</span></p><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><sp an>Here is a simple User class:</span></p><p class="c6 c0 c7"><span></span></p>< p class="c11 c0 c7"><span class="c2">class User {</span></p><p class="c11 c0 c7" ><span class="c2">&nbsp; String username;</span></p><p class="c11 c0 c7"><span c lass="c2">}</span></p><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><spa n>Here is a simple example of an input field binding:</span></p><p class="c6 c0 c7"><span></span></p><p class="c11 c0 c7"><span class="c2">&lt;input type=&quot; text&quot; name=&quot;username&quot; bind-value=&quot;</span><span class="c2">us er.username&quot;&gt;</span></p><p class="c6 c0 c7"><span></span></p><p class="c 0 c7"><span>The value property of the input field is bound to the username field of the </span><span class="c35">user</span><span>&nbsp;object&mdash;an instance of the </span><span class="c35">User</span><span>&nbsp;class.</span></p><h2 cla ss="c0"><a name="h.7otqcta04eui"></a><span>Walkthrough</span></h2><h3 class="c0" ><a name="h.gywvipbftj46"></a><span>Create a new library</span></h3><p class="c6 c0"><span></span></p><p class="c0"><span>To help you get started, we&#39;ve giv en you the shell for the new search library.</span></p><p class="c6 c0"><span></ span></p><ol class="c10 lst-kix_nhaic9xr6pf-0 start" start="1"><li class="c16 c1 1 c0 c7"><span>Right-click on the </span><span class="c1">lib</span><span>&nbsp; directory and select &quot;</span><span class="c1">New File</span><span>&quot;.< /span></li><li class="c16 c11 c0 c7"><span>Name this file &quot;search.dart&quot ;.</span></li><li class="c16 c11 c0 c7"><span>Open </span><span class="c1">__for _later/search.dart</span><span>, copy its contents, and paste into </span><span class="c1">lib/search.dart</span><span>.</span></li></ol><h3 class="c0"><a name= "h.3tpsh4ob2nhr"></a><span>Observe the search filter</span></h3><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>You need to add a top-level field th at will contain the search filter.</span></p><p class="c6 c0 c7"><span></span></ p><p class="c0 c7"><span>Add the following code to </span><span class="c1">lib/s earch.dart</span><span>.</span></p><p class="c6 c0"><span></span></p><a href="#" name="a042056057108e3f45766defec5c9081e7b61fd4"></a><a href="#" name="18"></a>< table cellpadding="0" cellspacing="0" class="c13"><tbody><tr class="c22"><td cla ss="c20"><p class="c5 c0"><span class="c2">// lib/search.dart</span></p><p class ="c6 c5 c0"><span class="c2"></span></p><p class="c5 c0"><span class="c2">import &#39;package:writer/document.dart&#39;;</span></p><p class="c6 c5 c0"><span cla ss="c2"></span></p><p class="c5 c0"><span class="c2">// STEP 4: Add an observed string to filter documents.</span></p><p class="c5 c0"><span class="c2 c1">@obse rvable</span></p><p class="c5 c0"><span class="c2 c1">String searchFilter = &#39 ;&#39;;</span></p><p class="c5 c0"><span class="c2">&hellip;</span></p></td></tr ></tbody></table><p class="c6 c0"><span></span></p><h3 class="c0"><a name="h.1i3 dq5f7oc85"></a><span>Filter documents</span></h3><p class="c6 c0 c7"><span></spa n></p><p class="c0 c7"><span>Now that you have an observable </span><span>search Filter</span><span>&nbsp;string, you can filter documents.</span></p><p class="c 6 c0 c7"><span></span></p><p class="c0 c7"><span>Inside of </span><span class="c 1">lib/search.dart</span><span>, add the following code:</span></p><p class="c6 c0"><span></span></p><a href="#" name="dd9b7b447779506c855362f9779578a1cba8ee6f" ></a><a href="#" name="19"></a><table cellpadding="0" cellspacing="0" class="c13 "><tbody><tr class="c22"><td class="c20"><p class="c5 c0"><span class="c2">// li b/search.dart</span></p><p class="c6 c5 c0"><span class="c2"></span></p><p class ="c5 c0"><span class="c2">// STEP 4: Add function to check if a document matches the search filter.</span></p><p class="c5 c0"><span class="c2 c1">bool matchesS earchFilter(Document doc) {</span></p><p class="c5 c0"><span class="c2 c1">&nbsp ; if (searchFilter.isEmpty) {</span></p><p class="c5 c0"><span class="c2 c1">&nb sp; &nbsp; return </span><span class="c2 c1">true</span><span class="c2 c1">;</s pan></p><p class="c5 c0"><span class="c2 c1">&nbsp; }</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">&nbsp; r eturn doc.title.toLowerCase().contains(searchFilter.toLowerCase()) ||</span></p> <p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;doc.conte nt.toLowerCase().contains(searchFilter.toLowerCase());</span></p><p class="c5 c0 "><span class="c2 c1">}</span></p></td></tr></tbody></table><p class="c6 c0"><sp an></span></p><p class="c0 c7"><span>Notice that </span><span>searchFilter.isEmp ty</span><span>&nbsp;is a </span><span class="c15">getter</span><span>&mdash;it doesn&rsquo;t have trailing parentheses.</span></p><p class="c6 c0 c7"><span></s pan></p><p class="c0 c7"><span>Save your changes.</span></p><h3 class="c0"><a na me="h.obmom9hrtjt0"></a><span>Import search into app</span></h3><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>With the search library complete, yo u need to import it into the main application.</span></p><p class="c6 c0 c7"><sp an></span></p><p class="c0 c7"><span>Open </span><span class="c1">web/app.dart</ span><span class="c1">&nbsp;</span><span>and add the following code:</span></p>< p class="c6 c0"><span></span></p><a href="#" name="6d5fb425ce24bad33322b62ea263a 2e8ca1e30e2"></a><a href="#" name="20"></a><table cellpadding="0" cellspacing="0 " class="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0"><span clas s="c2">// web/app.dart</span></p><p class="c6 c5 c0"><span class="c2"></span></p ><p class="c5 c0"><span class="c2">import &#39;package:writer/document.dart&#39; ;</span></p><p class="c6 c5 c0"><span class="c2"></span></p><p class="c5 c0"><sp an class="c2">// STEP 4: Import search.dart.</span></p><p class="c5 c0"><span cl ass="c2 c1">import &#39;package:writer/search.dart&#39;;</span></p><p class="c6 c5 c0"><span class="c2"></span></p><p class="c5 c0"><span class="c2">// STEP 5: Import storage.dart.</span></p><p class="c5 c0"><span class="c2 c1">&hellip;</sp an></p></td></tr></tbody></table><p class="c6 c0"><span></span></p><p class="c0 c7"><span>To keep the path to </span><span class="c1">search.dart</span><span cl ass="c1">&nbsp;</span><span>relative to </span><span class="c1">app.dart</span>< span>, we use the </span><span>package:</span><span>&nbsp;import method to impor t the search.dart library from the writer package. The </span><span class="c1">p ubspec.yaml</span><span class="c1">&nbsp;</span><span>file declares the writer p ackage. The </span><span>pub</span><span>&nbsp;command creates all the necessary symlinks to allow you to not have to create import paths like &#39;</span><span >../../lib/search.dart</span><span>&#39;.</span></p><p class="c6 c0 c7"><span></ span></p><p class="c0"><span>Save your changes.</span></p><h3 class="c9 c0"><a n ame="h.uf0oq3wrab9x"></a><span>Input field for filter</span></h3><p class="c6 c0 "><span></span></p><p class="c0"><span>Let&#39;s turn our attention to the HTML for the search box. You added the observable </span><span>searchFilter</span><sp an>&nbsp;field in </span><span>search.dart</span><span>, now let&#39;s bind that into an HTML input field.</span></p><p class="c6 c0"><span></span></p><p class= "c0"><span>Open </span><span class="c1">web/index.html</span><span class="c1">&n bsp;</span><span>and add the following code:</span></p><p class="c6 c0"><span></ span></p><a href="#" name="4d0cc0c5260d42270a69014b961ab05e5235b5d1"></a><a href ="#" name="21"></a><table cellpadding="0" cellspacing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0"><span class="c2">// web/index.html </span></p><p class="c5 c0"><span class="c2">&hellip;</span></p><p class="c5 c0" ><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &lt;div class=&quot;input-wrap&quo t;&gt;</span></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; & nbsp; &lt;!-- STEP 4: Add a input box to filter documents. --&gt;</span></p><p c lass="c5 c0"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span cl ass="c2 c1">&lt;input type=&quot;text&quot; placeholder=&quot;Filter documents.. .&quot; bind-value=&quot;searchFilter&quot;&gt;</span></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="c2">&lt;/</span><spa n class="c2">div</span><span class="c2">&gt;</span></p><p class="c5 c0"><span cl ass="c2">&hellip;</span></p></td></tr></tbody></table><p class="c6 c0"><span></s pan></p><p class="c0"><span>The variable name </span><span class="c15">searchFil ter</span><span>&nbsp;must match the string inside of the bind-value attribute.< /span></p><h3 class="c0"><a name="h.mtf4udav2d7n"></a><span>Dynamically hide or show docs based on the filter</span></h3><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>When the search filter changes, we want to dynamically upda te the documents displayed on the page.</span></p><p class="c6 c0 c7"><span></sp an></p><p class="c0 c7"><span>Continue editing </span><span class="c1">web/index .html</span><span class="c1">&nbsp;</span><span>and add the following code:</spa n></p><p class="c6 c0"><span></span></p><a href="#" name="6d3da29ef7fd3926adfaf6 eb70944e90a5d04c92"></a><a href="#" name="22"></a><table cellpadding="0" cellspa cing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0"><sp an class="c2">// web/index.html</span></p><p class="c5 c0"><span class="c2">&hel lip;</span></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &lt ;!-- STEP 3: Iterate over list of documents. --&gt;</span></p><p class="c5 c0">< span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &lt;template iterate=&quot;doc in do cuments&quot;&gt;</span></p><p class="c6 c5 c0"><span class="c2"></span></p><p c lass="c5 c0"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- STEP 4: Hide documents that don&#39;t match search filter. --&gt;</span></p><p class="c 5 c0"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;template if=&qu ot;matchesSearchFilter(doc)&quot;&gt;</span></p><p class="c6 c5 c0"><span class= "c2"></span></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &n bsp; &nbsp; &lt;!-- Our custom document element! --&gt;</span></p><p class="c5 c 0"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;x-document-ite m doc=&quot;{{doc}}&quot;&gt;&lt;/x-document-item&gt;</span></p><p class="c5 c0" ><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;/template&gt;</span> </p><p class="c6 c5 c0"><span class="c2"></span></p><p class="c5 c0"><span class ="c2">&nbsp; &nbsp; &nbsp; &nbsp; &lt;/template&gt;</span></p><p class="c5 c0">< span class="c2">&hellip;</span></p></td></tr></tbody></table><p class="c6 c0"><s pan></span></p><p class="c0 c7"><span>Notice that you are placing the conditiona l template within the template loop.</span></p><p class="c6 c0 c7"><span></span> </p><p class="c0 c7"><span>The Web UI library knows that </span><span>matchesSea rchFilter</span><span>&nbsp;relies on </span><span>searchFilter</span><span>, so whenever </span><span>searchFilter</span><span>&nbsp;changes, it re-runs this t emplate. Only those documents that pass </span><span>matchesSearchFilter</span>< span>&nbsp;will be displayed with the custom </span><span>&lt;x-document-item&gt ;</span><span>&nbsp;tag.</span></p><p class="c6 c0 c7"><span></span></p><h2 clas s="c0"><a name="h.j1j21dxjix9k"></a><span>Run the code</span></h2><p class="c0 c 7"><span>Time to run the code! After completing this step, you should be able to search for documents by title or contents. The search results are live. </span> <span class="c15">Note</span><span>: there is a known bug, if the currently open ed document does not match the filter, it won&#39;t disappear.</span></p><p clas s="c6 c0 c7"><span></span></p><p class="c0 c7"><img height="294" src="images/ima ge10.jpg" width="506"></p><p class="c6 c0 c7"><span></span></p><p class="c0 c7"> <span>If you do not see the input field for the filter, run </span><span class=" c1">Tools &gt; Reanalyze Sources</span><span>.</span></p><hr style="page-break-b efore:always;display:none;"><p class="c6 c0 c7"><span></span></p><h1 class="c0"> <a name="h.fwk2fgwdpcgv"></a><span>Step 5: Adding local storage</span></h1><p cl ass="c6 c0 c7"><span></span></p><p class="c0 c7"><span>In this step, you learn h ow to save the user&rsquo;s documents in local storage, and later to remove the documents. In addition to saving the documents in local storage, the app also ma intains a list of document IDs in local storage. The </span><span>main()</span>< span>&nbsp;function uses </span><span>this </span><span>list to initialize the a pp and load the first document. The app saves the documents as JSON-formatted st rings. You also learn how to use the JSON library to serialize and revive the do cument contents.</span></p><h2 class="c0"><a name="h.69edvk1ggsqx"></a><span>Wha t you will learn</span></h2><p class="c6 c0"><span></span></p><ol class="c10 lst -kix_2uog6ch44jpu-0 start" start="1"><li class="c16 c11 c0"><span>Save documents in local storage.</span></li><li class="c16 c11 c0"><span>Remove documents from local storage.</span></li><li class="c16 c11 c0"><span>Maintain a list of docum ent IDs in local storage.</span></li><li class="c16 c11 c0"><span>Use JSON to re ad and write the contents of the documents.</span></li></ol><h2 class="c12 c0">< a name="h.sjarbfxvehu8"></a><span>Concepts overview</span></h2><h3 class="c9 c0" ><a name="h.ugi5xom80b1x"></a><span>Local storage</span></h3><p class="c6 c0"><s pan></span></p><p class="c0"><span>Local storage can be </span><span>use</span>< span>&nbsp;to keep persistent data between invocations of your app. The data may only be accessed by the origin that created it. The Window object that hosts th e web app has a localStorage object that your code can use to store and retrieve data. The local storage object is implemented as a Map&lt;String, String&gt;. < /span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Save data in loc al storage by putting a key/value pair in the localStorage object.</span></p><p class="c0 c6"><span></span></p><p class="c18 c11 c0 c7"><span class="c2 c39">win dow.localStorage[&#39;key1&#39;] = &#39;val1&#39;;<br>window.localStorage[&#39;k ey2&#39;] = &#39;val2&#39;;<br>window.localStorage[&#39;key3&#39;] = &#39;val3&# 39;;</span></p><p class="c18 c6 c0 c7"><span class="c35"></span></p><p class="c1 8 c0 c7"><span>Delete data from local storage by removing a key/value pair from the </span><span>localStorage</span><span>&nbsp;object.</span></p><p class="c6 c 0 c7 c18"><span></span></p><p class="c18 c11 c0 c7"><span class="c2">window.loca lStorage.</span><span class="c2">remove</span><span class="c2">([&#39;key1&#39;] );</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>You can use < /span><span><a class="c14" href="http://api.dartlang.org/dart_core/Map.html">Map </a></span><span>&nbsp;APIs such as containsValue(), clear(), and length:</span> </p><p class="c6 c0"><span></span></p><p class="c18 c11 c0 c7"><span class="c2"> assert(window.localStorage.containsValue(&#39;does not exist&#39;) == false);<br >window.localStorage.clear();<br>assert(window.localStorage.length == 0);</span> </p><h3 class="c9 c0"><a name="h.o8ej7ha012l6"></a><span>JSON</span></h3><p clas s="c6 c0"><span></span></p><p class="c0"><span>JSON is a text-based, human-frien dly format for representing data of different types. The dart:json library has t wo useful functions for converting data to/from JSON: stringify() and parse(). H ere&rsquo;s a small example that converts a list of objects to JSON and back aga in.</span></p><p class="c6 c0"><span></span></p><p class="c18 c11 c0 c7"><span c lass="c2">import </span><span class="c2">&#39;</span><span class="c2">dart:json< /span><span class="c2">&#39;</span><span class="c2">&nbsp;as JSON;</span></p><p class="c18 c6 c11 c0 c7"><span class="c2"></span></p><p class="c18 c11 c0 c7"><s pan class="c2">var list = [1, &quot;two&quot;, 3.0]; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // a list of objects</span></p><p class="c18 c11 c0 c7"><span class="c2">String listAsString = JSON.stringify(list); // convert lis t of objects to JSON string</span></p><p class="c18 c11 c0 c7"><span class="c2"> print(listAsString); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nb sp; &nbsp; &nbsp; &nbsp;// [1,&quot;two&quot;,3.0]</span></p><p class="c18 c11 c 0 c7"><span class="c2">var revivedList = JSON.parse(listAsString); // convert JS ON string to list object</span></p><p class="c18 c11 c0 c7"><span class="c2">pri nt(revivedList); &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // [1, two, 3.0]</span></p><h2 class="c0"><a name="h.36ilme n4pg0r"></a><span>Walkthrough</span></h2><h3 class="c9 c0"><a name="h.q7i5j58pkj sj"></a><span>Create a library to handle local storage.</span></h3><p class="c6 c0"><span></span></p><p class="c0"><span>This step requires you to edit three fi les: </span><span class="c1">lib/</span><span class="c1">storage.dart</span><spa n>, </span><span class="c1">web/</span><span class="c1">index.html</span><span>, and </span><span class="c1">web/</span><span class="c1">app.dart</span><span>. Let&rsquo;s begin with </span><span class="c1">storage.dart</span><span>.</span> </p><h3 class="c9 c0"><a name="h.3tndkjgajsf7"></a><span>Save a document to loca l storage. Add the document ID to the list.</span></h3><p class="c6 c0"><span></ span></p><p class="c0"><span>To help you get started, we&#39;ve given you the sh ell for the new local storage library.</span></p><p class="c6 c0"><span></span>< /p><ol class="c10 lst-kix_hm47sef7muk-0 start" start="1"><li class="c16 c11 c0"> <span>Right-click on the </span><span class="c1">lib</span><span>&nbsp;directory and select &quot;</span><span class="c1">New File</span><span>&quot;.</span></l i><li class="c16 c11 c0"><span>Name this file &quot;storage.dart&quot;.</span></ li><li class="c16 c11 c0"><span>Open </span><span class="c1">__for_later/storage .dart, </span><span>copy its contents, and paste it into </span><span class="c1" >lib/storage.dart</span><span>.</span></li></ol><p class="c6 c0"><span></span></ p><p class="c0"><span>Modify the </span><span>saveDocument()</span><span>&nbsp;f unction. Add the code, shown in bold below,</span></p><ol class="c10 lst-kix_pza 3ybm1wtg3-0 start" start="1"><li class="c16 c11 c0"><span>to convert the documen t to a JSON-formatted string and save it in the window&rsquo;s local storage,</s pan></li><li class="c16 c11 c0"><span>to add the document ID to the internal lis t of IDs, if necessary,</span></li><li class="c16 c11 c0"><span>and finally, to save the list of document IDs, in JSON format, to the local storage</span><span> .</span></li></ol><p class="c6 c0"><span></span></p><a href="#" name="11f012b03f e1c09376f0858633759211354f25a7"></a><a href="#" name="23"></a><table cellpadding ="0" cellspacing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class ="c5 c0"><span class="c2">// storage.dart</span></p><p class="c5 c0"><span class ="c2">&hellip;</span></p><p class="c5 c0"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- Document title --&gt;</span></p><p class="c5 c0"><span cla ss="c2">/// Save the document to local storage.</span></p><p class="c5 c0"><span class="c2">void saveDocument(Document doc) {</span></p><p class="c5 c0"><span c lass="c2">&nbsp; // STEP 5: Save the serialized version of the document to local storage.</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; window.localStor age[doc.id] = doc.toJson();</span></p><p class="c6 c5 c0"><span class="c2"></spa n></p><p class="c5 c0"><span class="c2">&nbsp; // STEP 5: Add the new document I D to our list of document IDs.</span></p><p class="c5 c0"><span class="c2">&nbsp ; </span><span class="c2 c1">if </span><span class="c2 c1">(!_storedIds.contains (doc.id)) {</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; _stored Ids.add(</span><span class="c2 c1">doc.id);</span></p><p class="c5 c0"><span cla ss="c2 c1">&nbsp; }</span></p><p class="c6 c5 c0"><span class="c2"></span></p><p class="c5 c0"><span class="c2">&nbsp; // STEP 5: Update local storage map of ID s.</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; window.localStorage[DOC UMENT_ID_KEY] = JSON.stringify(_storedIds);</span></p><p class="c5 c0"><span cla ss="c2">}</span></p><p class="c6 c5 c0"><span class="c2"></span></p><p class="c5 c0"><span class="c2">&hellip;</span></p></td></tr></tbody></table><p class="c6 c0"><span></span></p><h3 class="c9 c0"><a name="h.wjjh2u48r262"></a><span>Remove the document from local storage. Remove the document ID from the list.</span></ h3><p class="c6 c0"><span></span></p><p class="c0"><span>Continue editing </span ><span class="c1">lib/</span><span class="c1">storage.dart</span><span>.</span>< /p><p class="c6 c0"><span></span></p><p class="c0"><span>Modify the </span><span >removeDocument()</span><span>&nbsp;function. Add the code</span></p><ol class=" c10 lst-kix_qz5wp1hdd24k-0 start" start="1"><li class="c16 c11 c0"><span>to remo ve the document ID from the internal list,</span></li><li class="c16 c11 c0"><sp an>to remove the document from local storage, </span></li><li class="c16 c11 c0" ><span>and to save the list of document IDs in local storage.</span></li></ol><p class="c6 c0"><span></span></p><a href="#" name="3177dcfaa26d24b52d0428abf91f2c b328fae133"></a><a href="#" name="24"></a><table cellpadding="0" cellspacing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0"><span class ="c2">// storage.dart</span></p><p class="c5 c0"><span class="c2">&hellip;</span ></p><p class="c5 c0"><span class="c2">/// Removes the document from local stora ge.</span></p><p class="c5 c0"><span class="c2">void removeDocument(Document doc ) {</span></p><p class="c5 c0"><span class="c2">&nbsp; // STEP 5: Remove the doc ument from local storage.</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; _storedIds.remove(doc.id);</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; window.localStorage.remove(doc.id);</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; window.localStorage[DOCUMENT_ID_KEY] = JSON.stringify(_storedIds);</s pan></p><p class="c5 c0"><span class="c2">}</span></p><p class="c5 c0"><span cla ss="c2">&hellip;</span></p></td></tr></tbody></table><p class="c6 c0"><span></sp an></p><h3 class="c9 c0"><a name="h.iu894renpog2"></a><span>Load the list of IDs from local storage. Then load the documents.</span></h3><p class="c6 c0"><span> </span></p><p class="c0"><span>Continue editing </span><span class="c1">lib/stor age.dart</span><span>.</span></p><p class="c6 c0"><span></span></p><p class="c0" ><span>Modify the </span><span>fetchDocuments()</span><span>&nbsp;function. Add the code</span></p><ol class="c10 lst-kix_8dg0b92yw51r-0 start" start="1"><li cl ass="c16 c11 c0"><span>to get the list of document IDs</span></li><li class="c16 c11 c0"><span>to load all of the documents from local storage using the private method </span><span>_fetchDocument()</span></li><li class="c16 c11 c0"><span>an d to display one of the documents.</span></li></ol><p class="c6 c0 c7"><span></s pan></p><a href="#" name="9828f087ea9465c35bd79ae04bfae6e8749c67e0"></a><a href= "#" name="25"></a><table cellpadding="0" cellspacing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0 c7"><span class="c2">// storage.dart </span></p><p class="c5 c0 c7"><span class="c2">&hellip;</span></p><p class="c5 c0 c7"><span class="c2">// Returns a collection of all documents from local stor age.</span></p><p class="c5 c0 c7"><span class="c2">Iterable&lt;Document&gt; fet chDocuments() {</span></p><p class="c5 c0 c7"><span class="c2">&nbsp; // STEP 5: Get all document IDs from local storage.</span></p><p class="c5 c0 c7"><span cl ass="c2 c1">&nbsp; if (window.localStorage[DOCUMENT_ID_KEY] != null) {</span></p ><p class="c5 c0 c7"><span class="c2 c1">&nbsp; &nbsp; _storedIds = JSON.parse(w indow.localStorage[DOCUMENT_ID_KEY]);</span></p><p class="c5 c0 c7"><span class= "c2 c1">&nbsp; }</span></p><p class="c6 c5 c0 c7"><span class="c2"></span></p><p class="c5 c0 c7"><span class="c2">&nbsp; // STEP 5: Get all documents from loca l storage.</span></p><p class="c5 c0 c7"><span class="c2 c1">&nbsp; return _stor edIds.map(_fetchDocument);</span></p><p class="c5 c0 c7"><span class="c2">}</spa n></p><p class="c6 c5 c0 c7"><span class="c2"></span></p><p class="c5 c0 c7"><sp an class="c2">/// Gets a document from local storage.</span></p><p class="c5 c0 c7"><span class="c2">Document _fetchDocument(String id) {</span></p><p class="c5 c0 c7"><span class="c2">&nbsp; // STEP 5: Return one deserialized document from local storage.</span></p><p class="c5 c0 c7"><span class="c2 c1">&nbsp; return new Doc</span><span class="c2 c1">ument.fromJson</span><span class="c2 c1">(wind ow.localStorage[id]);</span></p><p class="c5 c0 c7"><span class="c2">}</span></p ><p class="c5 c0 c7"><span class="c2">&hellip;</span></p></td></tr></tbody></tab le><p class="c6 c0 c7"><span></span></p><p class="c0"><span>Save your changes to </span><span class="c1">lib/</span><span class="c1">storage.dart</span><span>.< /span></p><p class="c6 c0"><span class="c35"></span></p><h3 class="c9 c0"><a nam e="h.i3h5dbyw0vmu"></a><span>Add event handlers to HTML elements to save the doc ument.</span></h3><p class="c6 c0"><span></span></p><p class="c0"><span>Now that you&rsquo;ve written the library code that saves and retrieves documents, you c an use the new functions in the app. The app saves the documents based on user-g enerated events in the UI. So let&rsquo;s add event handlers to the HTML element s for saving the documents.</span></p><p class="c6 c0"><span></span></p><p class ="c0"><span>Open the </span><span class="c1">web/index.html </span><span>file.</ span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Find the code tha t creates the text element for the document titles.</span></p><p class="c6 c0">< span></span></p><p class="c0"><span>Add a key-up event handler to the text field . Each time the user types a character in the document title, the event handler saves the document.</span></p><p class="c6 c0 c7"><span></span></p><a href="#" n ame="36ceaf585c6c68044bee5323e8e8b9b547788375"></a><a href="#" name="26"></a><ta ble cellpadding="0" cellspacing="0" class="c13"><tbody><tr class="c22"><td class ="c20"><p class="c5 c0 c7"><span class="c2">// index.html</span></p><p class="c5 c0 c7"><span class="c2">&hellip;</span></p><p class="c5 c0 c7"><span class="c2" >&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- Document title --&gt;</span></p><p c lass="c5 c0 c7"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;div clas s=&quot;input-wrap&quot;&gt;</span></p><p class="c6 c5 c0 c7"><span class="c2">< /span></p><p class="c5 c0 c7"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp ; &nbsp; &lt;!-- STEP 5: Add event handler to save the active document. --&gt;</ span></p><p class="c5 c0 c7"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="c2 c23">&lt;input type=&quot;text&quot; bind-value=& quot;activeDocument.title&quot;&gt;</span></p><p class="c5 c0 c7"><span class="c 2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;input type=&quot;text&quot; bind-value=&quot;activeDocument.title&quot;</span></p><p class="c5 c0 c7"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </span><span class="c2 c1">on-key-up=&quot;saveDocument(activeDocument)&quot; </span><span cl ass="c2">/&gt;</span></p><p class="c5 c0 c7"><span class="c2">&nbsp; &nbsp; &nbs p; &nbsp; &nbsp; &lt;/div&gt;</span></p><p class="c5 c0 c7"><span class="c2">&he llip;</span></p></td></tr></tbody></table><p class="c6 c0 c7"><span></span></p>< p class="c0"><span>Now, find the textarea used to enter the contents of a docume nt.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Add a key-up event handler to the textarea. Each time the user types a character into the do cument, the event handler saves the document.</span></p><p class="c6 c0 c7"><spa n></span></p><a href="#" name="bbf4a6a118e5f14b13909f187048196681e275a6"></a><a href="#" name="27"></a><table cellpadding="0" cellspacing="0" class="c13"><tbody ><tr class="c22"><td class="c20"><p class="c5 c0 c7"><span class="c2">// index.h tml</span></p><p class="c5 c0 c7"><span class="c2">&hellip;</span></p><p class=" c5 c0 c7"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &lt;!-- Content box --&gt ;</span></p><p class="c5 c0 c7"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; &lt ;!-- STEP 5: Add event handler to save the active document. --&gt;</span></p><p class="c5 c0 c7"><span class="c2">&nbsp; &nbsp; &nbsp; &nbsp; </span><span class ="c2 c23">&lt;textarea class=&quot;content&quot; bind-value=&quot;activeDocument .content&quot;&gt;&lt;/textarea&gt;</span></p><p class="c5 c0 c7"><span class="c 2">&nbsp; &nbsp; &nbsp; &nbsp; </span><span class="c2 c1">&lt;textarea class=&qu ot;content&quot; bind-value=&quot;activeDocument.content&quot;</span></p><p clas s="c5 c0 c7"><span class="c2 c1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; on-ke y-up=&quot;saveDocument(activeDocument)&quot;&gt;&lt;/textarea&gt;</span></p><p class="c6 c5 c0 c7"><span class="c2"></span></p><p class="c5 c0 c7"><span class= "c2">&hellip;</span></p></td></tr></tbody></table><p class="c6 c0"><span class=" c1 c41"></span></p><p class="c0"><span>Save your changes to </span><span class=" c1">web/index.html </span><span>.</span></p><p class="c6 c0"><span></span></p><h 3 class="c0"><a name="h.yvyngs2ay112"></a><span>Import storage.dart</span></h3>< p class="c6 c0"><span></span></p><p class="c0"><span>For removing documents and initializing the app, you need to edit the Dart code.</span></p><p class="c6 c0" ><span></span></p><p class="c0"><span>Open </span><span class="c1">web/app.dart< /span><span>.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Ad d an import directive near the top of the file to include the </span><span>stora ge.dart</span><span>&nbsp;library you just wrote.</span></p><p class="c6 c0 c7"> <span></span></p><a href="#" name="a92b059e6f7083b59c32c8e671b4914e90e06269"></a ><a href="#" name="28"></a><table cellpadding="0" cellspacing="0" class="c13"><t body><tr class="c22"><td class="c20"><p class="c5 c0 c7"><span class="c2">// app .dart</span></p><p class="c6 c5 c0 c7"><span class="c2"></span></p><p class="c5 c0 c7"><span class="c2">@observable</span></p><p class="c5 c0 c7"><span class="c 2">library writer;</span></p><p class="c6 c5 c0 c7"><span class="c2"></span></p> <p class="c5 c0 c7"><span class="c2">import &#39;dart:html&#39; hide Document;</ span></p><p class="c6 c5 c0 c7"><span class="c2"></span></p><p class="c5 c0 c7"> <span class="c2">import &#39;package:web_ui/web_ui.dart&#39;;</span></p><p class ="c6 c5 c0 c7"><span class="c2"></span></p><p class="c5 c0 c7"><span class="c2"> import &#39;package:writer/document.dart&#39;;</span></p><p class="c6 c5 c0 c7"> <span class="c2"></span></p><p class="c5 c0 c7"><span class="c2">// STEP 4: Impo rt search.dart.</span></p><p class="c5 c0 c7"><span class="c2">import &#39;packa ge:writer/search.dart&#39;;</span></p><p class="c6 c5 c0 c7"><span class="c2"></ span></p><p class="c5 c0 c7"><span class="c2">// STEP 5: Import storage.dart.</s pan></p><p class="c5 c0 c7"><span class="c2 c1">import &#39;package:writer/stora ge.dart&#39;;</span></p><p class="c6 c5 c0 c7"><span class="c2"></span></p><p cl ass="c5 c0 c7"><span class="c2">// STEP 3: Add an observed list of documents.</s pan></p><p class="c5 c0 c7"><span class="c2">final List&lt;Document&gt; document s = toObservable([]);</span></p><p class="c5 c0 c7"><span class="c2">&hellip;</s pan></p></td></tr></tbody></table><p class="c6 c0 c7"><span></span></p><h3 class ="c9 c0"><a name="h.s8iyjgjt4pp0"></a><span>Initialize the app with the locally stored documents.</span></h3><p class="c6 c0"><span></span></p><p class="c0"><sp an>Continue editing </span><span class="c1">web/app.dart</span><span>.</span></p ><p class="c6 c0"><span></span></p><p class="c0"><span>Modify the </span><span>m ain()</span><span>&nbsp;function in </span><span>app.dart</span><span>. Use the </span><span>fetchDocuments()</span><span>&nbsp;function from the </span><span>s torage.dart </span><span>library to initialize the app with the saved documents. </span></p><p class="c6 c0 c7"><span></span></p><a href="#" name="6e5b6db4508be6 d53f4dd8844b2b23840627fdc9"></a><a href="#" name="29"></a><table cellpadding="0" cellspacing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0 c7"><span class="c2">// app.dart</span></p><p class="c5 c0 c7"><span class=" c2">&hellip;</span></p><p class="c5 c0 c7"><span class="c2">/// Starts the appli cation.</span></p><p class="c5 c0 c7"><span class="c2">void main() {</span></p>< p class="c5 c0 c7"><span class="c2">&nbsp; // STEP 5: Initialize with all docume nts from local storage.</span></p><p class="c5 c0 c7"><span class="c2 c1">&nbsp; documents.addAll(fetchDocuments());</span></p><p class="c6 c5 c0 c7"><span clas s="c2"></span></p><p class="c5 c0 c7"><span class="c2">&nbsp; // STEP 3: Create a new document if there are none.</span></p><p class="c5 c0 c7"><span class="c2" >&nbsp; if (documents.isEmpty) createDocument();</span></p><p class="c6 c5 c0 c7 "><span class="c2"></span></p><p class="c5 c0 c7"><span class="c2">&nbsp; // STE P 3: Select the first document in the list of documents.</span></p><p class="c5 c0 c7"><span class="c2">&nbsp; selectDocument(documents.first);</span></p><p cla ss="c5 c0 c7"><span class="c2">}</span></p><p class="c5 c0 c7"><span class="c2"> &hellip;</span></p></td></tr></tbody></table><p class="c6 c0"><span></span></p>< h3 class="c9 c0"><a name="h.yxdyhxlthy8j"></a><span>Remove the document from loc al storage.</span></h3><p class="c6 c0"><span></span></p><p class="c0"><span>Con tinue editing </span><span class="c1">web/app.dart</span><span>.</span></p><p cl ass="c6 c0"><span></span></p><p class="c0"><span>Find the </span><span>deleteDoc ument()</span><span>&nbsp;function. Add code to remove the document from local s torage when the user deletes the document from the app.</span></p><p class="c6 c 0 c7"><span></span></p><a href="#" name="b03749e9a6ec5397397d6f8871b2330fb9cafea c"></a><a href="#" name="30"></a><table cellpadding="0" cellspacing="0" class="c 13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0 c7"><span class="c2"> // app.dart</span></p><p class="c5 c0 c7"><span class="c2">&hellip;</span></p><p class="c5 c0 c7"><span class="c2">// STEP 3: Add code to delete a document</spa n></p><p class="c5 c0 c7"><span class="c2">void deleteDocument(Document doc) {</ span></p><p class="c5 c0 c7"><span class="c2">&nbsp; documents.remove(doc);</spa n></p><p class="c6 c5 c0 c7"><span class="c2"></span></p><p class="c5 c0 c7"><sp an class="c2">&nbsp; </span><span class="c2">// STEP 5: Also delete from local s torage.</span></p><p class="c5 c0 c7"><span class="c2 c1">&nbsp; removeDocument( doc);</span></p><p class="c5 c0 c7"><span class="c2">}</span></p><p class="c5 c0 c7"><span class="c2">&hellip;</span></p></td></tr></tbody></table><h3 class="c9 c0 c27"><a name="h.6ky98xskme83"></a></h3><p class="c0"><span>Save your changes to </span><span class="c1">web/app.dart</span><span>.</span></p><h3 class="c9 c 0"><a name="h.ifs5zdb93rhi"></a><span>Run the revised version of the app.</span> </h3><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>You&rsquo;ve co mpleted the code edits for this step. Make sure all of your changes are saved.</ span></p><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>Run the app again. Create and name several documents. Kill the app and start it up again. T he documents you saved persist between invocations of the app.</span></p><p clas s="c6 c0 c7"><span></span></p><p class="c0"><img height="377" src="images/image0 6.png" width="588"></p><p class="c6 c0"><span></span></p><hr style="page-break-b efore:always;display:none;"><p class="c6 c0"><span></span></p><h1 class="c0"><a name="h.ymcy9fqorpug"></a><span>Step 6: Optimize layout for mobile devices</span ></h1><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>Your app alrea dy works on mobile, since many gestures emulate mouse events, such as clicks. Bu t we can do better. In this step, you&rsquo;ll make your app feel more native on mobile by adding some code to control layout on mobile devices and by adding so me specialized CSS styles.</span></p><h2 class="c0"><a name="h.v8hspt230iyp"></a ><span>What you will learn</span></h2><ol class="c10 lst-kix_wzk0mdv2qg9u-0 star t" start="1"><li class="c16 c11 c0 c7"><span>Using a meta tag to control layout on mobile devices</span></li><li class="c16 c11 c0"><span>CSS styles for mobile devices</span></li></ol><h2 class="c0"><a name="h.10tsfye06kbe"></a><span>Concep ts overview</span></h2><h3 class="c18 c9 c0"><a name="h.uu51nii9tdjq"></a><span class="c33 c1">Control</span><span class="c33 c1">&nbsp;layout on mobile devices </span></h3><p class="c6 c0"><span></span></p><p class="c0"><span>The &lt;meta&g t; tag, with the viewport attribute, helps to optimize your site for mobile devi ces. Here&rsquo;s what the Mozilla developer website has to say about mobile-opt imization:</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>A typ ical mobile-optimized site contains something like the following:</span></p><p c lass="c6 c0"><span></span></p><p class="c11 c0"><span class="c2">&lt;meta name=& quot;viewport&quot; content=&quot;width=device-width, initial-scale=1, maximum-s cale=1&quot;&gt;</span></p><p class="c6 c0"><span></span></p><p class="c0"><span >The width property controls the size of the viewport. It can be set to a specif ic number of pixels, like width=600, or to the special value device-width, which is the width of the screen in CSS pixels at a scale of 100%. (The content attri bute also supports corresponding height and device-height values, which may be u seful for pages with elements that change size or position based on the viewport height.)</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>The in itial-scale property controls the zoom level when the page is first loaded. The maximum-scale, minimum-scale, and user-scalable properties control how users are allowed to zoom the page in or out.</span></p><h3 class="c9 c0"><a name="h.3q4t ho2o4biu"></a><span>CSS styles for mobile devices</span></h3><p class="c6 c0"><s pan></span></p><p class="c0"><span>The @media rule allows different style rules for different media in the same style sheet. Shown below are two rules, one whic h applies when the app runs in an environment, such as a small mobile device, wh ich has a maximum width of 500 pixels. The other applies when the app runs in an environment that allows a larger width.</span></p><p class="c6 c0"><span></span ></p><p class="c11 c0"><span class="c2">@media all and (max-width: 500px) {</spa n></p><p class="c11 c0"><span class="c2">&nbsp; &hellip;</span></p><p class="c11 c0"><span class="c2">}</span></p><p class="c11 c0"><span class="c2">@media all and (min-width: 501px) {</span></p><p class="c11 c0"><span class="c2">&nbsp; &he llip;</span></p><p class="c11 c0"><span class="c2">} &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</span><span class="c2">&nbsp;</span><span class="c2 c47">&nbsp;</ span></p><h2 class="c0"><a name="h.jjv7ulrpc81s"></a><span>Walkthrough</span></h 2><h3 class="c9 c0"><a name="h.xg2egxktuosa"></a><span>Run the app in a small br owser window</span></h3><p class="c6 c0"><span></span></p><p class="c0"><span>Be fore you start changing the code, run the app in a tiny window so you can emulat e the app&rsquo;s behavior on a mobile phone. You can contrast this behavior wit h the revised version of the app at the end of this step.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Run the app. Shrink the window down as small as you can.</span></p><p class="c6 c0"><span></span></p><p class="c0"><sp an>The UI is not too cluttered and has a double scroll bar. We can do better!</s pan></p><p class="c6 c0"><span></span></p><p class="c0"><img height="272" src="i mages/image01.png" width="400"></p><p class="c6 c0"><span></span></p><h3 class=" c9 c0"><a name="h.vngw9eips6yz"></a><span>Add meta viewport tag to HTML code</sp an></h3><p class="c6 c0 c7"><span></span></p><p class="c0 c7"><span>O</span><spa n>pen </span><span class="c1">web/index.html</span><span>.</span></p><p class="c 6 c0 c7"><span></span></p><p class="c0 c7"><span>At the top of the file, within the </span><span>&lt;head&gt;</span><span>&nbsp;section add this meta tag:</span ></p><p class="c6 c0 c7"><span></span></p><a href="#" name="cc55c23dce922449740b 2782ba379e471cf2ed0b"></a><a href="#" name="31"></a><table cellpadding="0" cells pacing="0" class="c13"><tbody><tr class="c22"><td class="c20"><p class="c5 c0 c7 "><span class="c2">// web/index.html</span></p><p class="c5 c0 c7"><span class=" c2">&hellip;</span></p><p class="c5 c0 c7"><span class="c2">&nbsp; &nbsp; &lt;!- - STEP 6: Add viewport meta tag to control layout on mobile devices --&gt;</span ></p><p class="c5 c0 c7"><span class="c2 c1">&nbsp; &nbsp; &lt;meta name=&quot;v iewport&quot;</span></p><p class="c5 c0 c7"><span class="c2 c1">&nbsp; &nbsp; &n bsp; &nbsp; &nbsp; content=&quot;width=device-width, initial-scale=1, maximum-sc ale=1, user-scalable=no&quot;&gt;</span></p><p class="c5 c0 c7"><span class="c2" >&hellip;</span></p></td></tr></tbody></table><p class="c6 c0"><span></span></p> <p class="c0"><span>This tag fixes the size of the app to the exact size of the device.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>Save you r changes.</span></p><h3 class="c9 c0"><a name="h.c683e43ehs76"></a><span>Add CS S styles for mobile</span></h3><p class="c6 c0"><span></span></p><p class="c0">< span>Open </span><span class="c1">web/css.css</span><span>.</span></p><p class=" c6 c0"><span></span></p><p class="c0"><span>At the bottom of the CSS file, add a ll of the code in bold (79 lines):</span></p><p class="c6 c0"><span></span></p>< a href="#" name="8c019440a77031fbfe7e164dfc4fbe6b68f77295"></a><a href="#" name= "32"></a><table cellpadding="0" cellspacing="0" class="c13"><tbody><tr class="c2 2"><td class="c20"><p class="c5 c0"><span class="c2">// web/css.css</span></p><p class="c5 c0"><span class="c2">&hellip;</span></p><p class="c6 c5 c0"><span cla ss="c2"></span></p><p class="c5 c0"><span class="c2">/* STEP 6: Add styles for m obile devices */</span></p><p class="c5 c0"><span class="c2">/* Mobile styles. * /</span></p><p class="c5 c0"><span class="c2 c1">@media all and (max-width: 500p x) {</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; body {</span></p><p c lass="c5 c0"><span class="c2 c1">&nbsp; &nbsp; overflow: hidden;</span></p><p cl ass="c5 c0"><span class="c2 c1">&nbsp; }</span></p><p class="c6 c5 c0"><span cla ss="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">&nbsp; #sidebar .touc hed .item {</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; backgro und-color:rgba(250, 150, 150, .8);</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; -webkit-trans ition: all .7s cubic-bezier(.65,-0.50,.76,1.32);</span></p><p class="c5 c0"><spa n class="c2 c1">&nbsp; &nbsp; -moz-transition: all .7s cubic-bezier(.65,-0.50,.7 6,1.32);</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; transition : all .7s cubic-bezier(.65,-0.50,.76,1.32);</span></p><p class="c5 c0"><span cla ss="c2 c1">&nbsp; }</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p ><p class="c5 c0"><span class="c2 c1">&nbsp; #sidebar {</span></p><p class="c5 c 0"><span class="c2 c1">&nbsp; &nbsp; top: 0;</span></p><p class="c5 c0"><span cl ass="c2 c1">&nbsp; &nbsp; left: 0;</span></p><p class="c5 c0"><span class="c2 c1 ">&nbsp; &nbsp; right: 0;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; bottom: 0;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; w idth: 100%;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; -webkit -transition: -webkit-transform 0.3s ease-in-out;</span></p><p class="c5 c0"><spa n class="c2 c1">&nbsp; &nbsp; -moz-transition: -moz-transform 0.3s ease-in-out;< /span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; transition: transfo rm 0.3s ease-in-out;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp ; -webkit-transform: translate3d(-20%, 0, 0);</span></p><p class="c5 c0"><span c lass="c2 c1">&nbsp; &nbsp; -moz-transform: translate3d(-20%, 0, 0);</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; transform: translate3d(-20%, 0, 0);</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; }</span></p><p class= "c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">& nbsp; #sidebar.active {</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &n bsp; -webkit-transform: translate3d(0, 0, 0);</span></p><p class="c5 c0"><span c lass="c2 c1">&nbsp; &nbsp; -moz-transform: translate3d(0, 0, 0);</span></p><p cl ass="c5 c0"><span class="c2 c1">&nbsp; &nbsp; transform: translate3d(0, 0, 0);</ span></p><p class="c5 c0"><span class="c2 c1">&nbsp; }</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">&nbsp; #sidebar .item.active .delete {</span></p><p class="c5 c0"><span class="c2 c1">& nbsp; &nbsp; opacity: .7;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; }</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"> <span class="c2 c1">&nbsp; #main {</span></p><p class="c5 c0"><span class="c2 c1 ">&nbsp; &nbsp; top: 0;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &n bsp; left: 0;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; right : 0;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; bottom: 0;</sp an></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; -webkit-transition: -w ebkit-transform 0.3s ease-in-out;</span></p><p class="c5 c0"><span class="c2 c1" >&nbsp; &nbsp; -moz-transition: -moz-transform 0.3s ease-in-out;</span></p><p cl ass="c5 c0"><span class="c2 c1">&nbsp; &nbsp; transition: transform 0.3s ease-in -out;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; -webkit-trans form: translate3d(100%, 0, 0);</span></p><p class="c5 c0"><span class="c2 c1">&n bsp; &nbsp; -moz-transform: translate3d(100%, 0, 0);</span></p><p class="c5 c0"> <span class="c2 c1">&nbsp; &nbsp; transform: translate3d(100%, 0, 0);</span></p> <p class="c5 c0"><span class="c2 c1">&nbsp; }</span></p><p class="c6 c5 c0"><spa n class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">&nbsp; #main.act ive {</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; -webkit-trans form: translate3d(0, 0, 0);</span></p><p class="c5 c0"><span class="c2 c1">&nbsp ; &nbsp; -moz-transform: translate3d(0, 0, 0);</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; transform: translate3d(0, 0, 0);</span></p><p class= "c5 c0"><span class="c2 c1">&nbsp; }</span></p><p class="c6 c5 c0"><span class=" c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">&nbsp; #main .title butto n {</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; display: block; </span></p><p class="c5 c0"><span class="c2 c1">&nbsp; }</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">&nbsp ; #main .title .input-wrap {</span></p><p class="c5 c0"><span class="c2 c1">&nbs p; &nbsp; margin-left: 40px;</span></p><p class="c0 c5"><span class="c2 c1">&nbs p; }</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c 0"><span class="c2 c1">&nbsp; /* Let&#39;s not go there. It is a silly place. */ </span></p><p class="c5 c0"><span class="c2 c1">&nbsp; #main:only-of-type {</spa n></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; -moz-transition: none;< /span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; -webkit-transition: none;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; transition: none;</span></p><p class="c5 c0"><span class="c2 c1">&nbsp; }</span></p><p class ="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1"> &nbsp; #main:only-of-type button {</span></p><p class="c5 c0"><span class="c2 c1 ">&nbsp; &nbsp; display: none;</span></p><p class="c5 c0"><span class="c2 c1">&n bsp; }</span></p><p class="c6 c5 c0"><span class="c2 c1"></span></p><p class="c5 c0"><span class="c2 c1">&nbsp; #main:only-of-type .title .input-wrap {</span></ p><p class="c5 c0"><span class="c2 c1">&nbsp; &nbsp; margin-left: 0;</span></p>< p class="c5 c0"><span class="c2 c1">&nbsp; }</span></p><p class="c5 c0"><span cl ass="c2 c1">}</span></p></td></tr></tbody></table><p class="c6 c0"><span></span> </p><p class="c0"><span>This code separates the app into two panels: one for the index of documents and one for the content of the current document. Choosing a document from the index slides the content panel into view. In the contents pane l, a new button slides from the documents contents back to the index.</span></p> <p class="c6 c0"><span></span></p><p class="c0"><span>Save your changes.</span>< /p><p class="c6 c0"><span></span></p><h3 class="c9 c0"><a name="h.vcike6sk25tj"> </a><span>Run the revised version of the app</span></h3><p class="c6 c0"><span>< /span></p><p class="c0"><span>Run the new version of the app in your browser and shrink the window down as small as possible once again.</span></p><p class="c6 c0"><span></span></p><p class="c0"><span>On the document index panel, you see a list of the documents you&rsquo;ve created.</span></p><p class="c6 c0"><span></s pan></p><p class="c0"><span>Click a document to view its contents.</span></p><p class="c6 c0"><span></span></p><p class="c0"><img height="272" src="images/image 16.png" width="400"></p><p class="c6 c0"><span></span></p><p class="c0"><span>On the document contents panel, a small button with an arrow </span><span class="c 35">&lsquo;</span><span class="c35">&lt;&rsquo;</span><span>&nbsp;appears to the left of the document title.</span></p><p class="c6 c0"><span></span></p><p clas s="c0"><span>Click it to return to the document index.</span></p><p class="c6 c0 "><span></span></p><p class="c0"><img height="272" src="images/image41.png" widt h="400"></p><p class="c6 c0"><span></span></p><h3 class="c0"><a name="h.6wxrrse7 px8b"></a><span>Run the finished app on your phone</span></h3><p class="c6 c0">< span></span></p><p class="c0"><span>You can find the deployed app at:</span></p> <p class="c6 c0"><span></span></p><p class="c0"><span class="c21 c1"><a class="c 14" href="http://dart-lang.github.io/io-2013-dart-codelab/deploy/out/index.html" >http://dart-lang.github.io/io-2013-dart-codelab/deploy/out/index.html</a></span ><span class="c1"><br></span></p><p class="c0"><span>A shortcut: </span><span cl ass="c21 c1"><a class="c14" href="http://goo.gl/hC0NM">goo.gl/hC0NM</a></span><s pan class="c1">&nbsp;<br></span></p><h1 class="c0"><a name="h.itu7egiz6osy"></a> <span>What next?</span></h1><p class="c6 c0 c7"><span></span></p><p class="c0 c7 "><span>Congratulations, you&rsquo;ve completed the code lab! If you&rsquo;d lik e to do more Dart, check out our website and open-source projects:</span></p><p class="c6 c0 c7"><span></span></p><ul class="c10 lst-kix_t7any4lo9hoq-0 start">< li class="c16 c11 c0 c7"><span class="c21"><a class="c14" href="http://www.dartl ang.org">www.dartlang.org</a></span><span>&nbsp;(our website)</span></li><li cla ss="c16 c11 c0 c7"><span class="c21"><a class="c14" href="http://pub.dartlang.or g">pub.dartlang.org</a></span><span>&nbsp;(packages available for you to use)</s pan></li><li class="c16 c11 c0 c7"><span class="c21"><a class="c14" href="http:/ /dart.googlecode.com">dart.googlecode.com</a></span><span>&nbsp;(Dart open-sourc e project)</span></li><li class="c16 c11 c0 c7"><span class="c21"><a class="c14" href="https://github.com/dart-lang/dartlang.org">github.com/dart-lang/dartlang. org</a></span><span><a class="c14" href="https://github.com/dart-lang/dartlang.o rg">&nbsp;(the so</a></span><span>urce for </span><span class="c21"><a class="c1 4" href="http://www.dartlang.org">www.dartlang.org</a></span><span>; pull reques ts welcome!)</span></li></ul><p class="c6 c0 c7"><span></span></p><div><p class= "c6 c0 c48"><span></span></p></div><div class="c53"><p class="c5 c0 c7 c24"><a h ref="#cmnt_ref1" name="cmnt1">[a]</a><span class="c37">Chris Buckett:</span></p> <p class="c24 c5 c0 c7"><span class="c37">This can also be in an external file.< /span></p></div></body></html>
OLDNEW
« no previous file with comments | « src/site/codelabs/web-ui-writer/images/image41.png ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698