loading
Cascade - CSS Fundamentals

Cascade - CSS Fundamentals

bottom up, the core of CSS

                        PHA+TGV04oCZcyBiZWdpbiB3aXRoIHRoZSBjYXNjYWRlLCB0aGUgPHN0cm9uZz48ZW0+QzwvZW0+PC9zdHJvbmc+IGluIENTUy4gSG93IGl0IHdvcmtzIGFuZCBob3cgdG8gd29yayB3aXRoIGl0IHByYWN0aWNhbGx5LjwvcD4KCjxoMiBpZD0idGhlLWNhc2NhZGUiPlRoZSBDYXNjYWRlPC9oMj4KCjxibG9ja3F1b3RlPgogIDxwPlRoZSA8c3Ryb25nPmNhc2NhZGU8L3N0cm9uZz4gaXMgYW4gYWxnb3JpdGhtIHRoYXQgZGVmaW5lcyBob3cgdG8gY29tYmluZSBwcm9wZXJ0eSB2YWx1ZXMgb3JpZ2luYXRpbmcgZnJvbSBkaWZmZXJlbnQgc291cmNlcy4gSXQgbGllcyBhdCB0aGUgY29yZSBvZiBDU1MsIGFzIGVtcGhhc2l6ZWQgYnkgdGhlIG5hbWU6IDxzdHJvbmc+Q2FzY2FkaW5nPC9zdHJvbmc+IFN0eWxlIFNoZWV0cy48L3A+CjwvYmxvY2txdW90ZT4KCjxwPkZ1bmRhbWVudGFsbHksIENTUyBpcyBhYm91dCBkZWNsYXJpbmcgc3R5bGUgcnVsZXMuIFRoZXJlIGFyZSBvZnRlbiBzZXZlcmFsIHdheXMgdG8gYWNjb21wbGlzaCB0aGUgc2FtZSB0aGluZyBpbiBDU1MuIERlcGVuZGluZyBvbiB3aGljaCBzb2x1dGlvbiB5b3UgdXNlLCB5b3UgbWF5IGdldCB3aWxkbHkgZGlmZmVyZW50IHJlc3VsdHMgd2hlbiB0aGUgc3RydWN0dXJlIG9mIHRoZSBIVE1MIGNoYW5nZXMsIG9yIHdoZW4gdGhlIHN0eWxlcyBhcmUgYXBwbGllZCB0byBkaWZmZXJlbnQgcGFnZXMuIEEga2V5IHBhcnQgb2YgQ1NTIGRldmVsb3BtZW50IGNvbWVzIGRvd24gdG8gd3JpdGluZyBydWxlcyBpbiBzdWNoIGEgd2F5IHRoYXQgdGhleeKAmXJlIHByZWRpY2F0YWJsZS4gV2hpbGUgcHJlZGljdGluZyBob3cgcnVsZXMgYmVoYXZlIHJlcXVpcmVzIGFuIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGNhc2NhZGUuPC9wPgoKPHA+V2hlbiB0d28gb3IgbW9yZSBydWxlcyB0YXJnZXQgdGhlIHNhbWUgZWxlbWVudCBvbiB0aGUgcGFnZSwgdGhlIHJ1bGVzIG1heSBwcm92aWRlIGNvbmZsaWN0aW5nIGRlY2xhcmF0aW9ucy4gRm9yIGV4YW1wbGUgaW4gdGhlIGZvbGxvd2luZyBtYXJrdXBzOjwvcD4KCjxkaXYgY2xhc3M9Imxhbmd1YWdlLWh0bWwgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0ibnQiPiZsdDtoZWFkZXI8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYSI+Y2xhc3M9PC9zcGFuPjxzcGFuIGNsYXNzPSJzIj4icGFnZS1oZWFkZXIiPC9zcGFuPjxzcGFuIGNsYXNzPSJudCI+Jmd0Ozwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibnQiPiZsdDtoMTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5hIj5pZD08L3NwYW4+PHNwYW4gY2xhc3M9InMiPiJwYWdlLXRpdGxlIjwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5hIj5jbGFzcz08L3NwYW4+PHNwYW4gY2xhc3M9InMiPiJ0aXRsZSI8L3NwYW4+PHNwYW4gY2xhc3M9Im50Ij4mZ3Q7PC9zcGFuPldvbWJhdCBDb2ZmZWUgUm9hc3RlcnM8c3BhbiBjbGFzcz0ibnQiPiZsdDsvaDEmZ3Q7PC9zcGFuPgo8c3BhbiBjbGFzcz0ibnQiPiZsdDsvaGVhZGVyJmd0Ozwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKPHA+d2l0aCB0aGUgZm9sbG93aW5nIENTUyBydWxlczo8L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1jc3MgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0ibnQiPmgxPC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPmZvbnQtZmFtaWx5PC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPnNlcmlmPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPHNwYW4gY2xhc3M9Im5mIj4jcGFnZS10aXRsZTwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5mb250LWZhbWlseTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5iIj5zYW5zLXNlcmlmPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPHNwYW4gY2xhc3M9Im5jIj4udGl0bGU8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Zm9udC1mYW1pbHk8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJuYiI+bW9ub3NwYWNlPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKPHA+VGhlIHRpdGxlIGNhbuKAmXQgaGF2ZSB0aHJlZSBmb250cyBhdCBvbmUgdGltZS4gU28sIHdoaWNoIG9uZSB3aWxsIGl0IGJlPzwvcD4KCjxwPlRvIGRldGVybWluZSB0aGUgYW5zd2VyLCB5b3Ugc2hvdWxkIGtub3cgdGhhdCB0aGUgYnJvd3NlciBmb2xsb3dzIGEgc2V0IG9mIHJ1bGVzLCBzbyB0aGUgcmVzdWx0IGlzIHByZWRpY3RhYmxlLiBJbiB0aGlzIGNhc2UsIHRoZSBydWxlcyBkaWN0YXRlIHRoYXQgdGhlIHNlY29uZCBkZWNsYXJhdGlvbiwgd2hpY2ggaGFzIGFuIElEIHNlbGVjdG9yLCB3aW5zOyB0aGUgdGl0bGUgd2lsbCBoYXZlIGEgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+c2Fucy1zZXJpZjwvY29kZT4gZm9udC48L3A+Cgo8cD5UaGUgPGVtPmNhc2NhZGU8L2VtPiBpcyB0aGUgbmFtZSBmb3IgdGhpcyBzZXQgb2YgcnVsZXMuIEl0IGRldGVybWluZXMgaG93IGNvbmZsaWN0cyBhcmUgcmVzb2x2ZWQsIGFuZCBpdOKAmXMgYSBmdW5kYW1lbnRhbCBwYXJ0IG9mIGhvdyB0aGUgbGFuZ3VhZ2Ugd29ya3MuIFdoZW4gZGVjbGFyYXRpb25zIGNvbmZsaWN0LCB0aGUgY2FzY2FkZSBjb25zaWRlcnMgdGhyZWUgdGhpbmdzIHRvIHJlc29sdmUgdGhlIGRpZmZlcmVuY2U6PC9wPgoKPHVsPgogIDxsaT48ZW0+U3R5bGVzaGVldCBvcmlnaW48L2VtPiAtIHdoZXJlIHRoZSBzdHlsZXMgY29tZSBmcm9tLiBZb3VyIHN0eWxlcyBhcmUgYXBwbGllZCBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBicm93c2Vy4oCZcyBkZWZhdWx0IHN0eWxlcy48L2xpPgogIDxsaT48ZW0+U2VsZWN0b3Igc3BlY2lmaWNpdHk8L2VtPiAtIHdoaWNoIHNlbGVjdG9ycyB0YWtlIHByZWNlZGVuY2Ugb3ZlciB3aGljaC48L2xpPgogIDxsaT48ZW0+U291cmNlIG9yZGVyPC9lbT4gLSBvcmRlciBpbiB3aGljaCBzdHlsZXMgYXJlIGRlY2xhcmVkIGluIHRoZSBzdHlsZXNoZWV0LjwvbGk+CjwvdWw+Cgo8cD48aW1nIHNyYz0iaHR0cHM6Ly9pLmxvbGkubmV0LzIwMTkvMDYvMjEvNWQwYzllZjg3YTExYjYyNzc5LnBuZyIgYWx0PSJIaWdoLWxldmVsIGZsb3djaGFydCBvZiB0aGUgY2FzY2FkZSBzaG93aW5nIGRlY2xhcmF0aW9uIHByZWNlZGVuY2UgLSBDU1MgaW4gRGVwdGggKDIwMTgpIiAvPjwvcD4KCjxwPlRoZXNlIHJ1bGVzIGFsbG93IGJyb3dzZXJzIHRvIGJlaGF2ZSBwcmVkaWNhdGFibHkgd2hlbiByZXNvbHZpbmcgYW55IGFtYmlndWl0eSBpbiB0aGUgQ1NTLjwvcD4KCjxibG9ja3F1b3RlPgogIDxwPk5vdGUgdGhhdCA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQGltcG9ydCI+PGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+QGltcG9ydDwvY29kZT48L2E+IGFuZCA8YSBocmVmPSJodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9DU1MvQGNoYXJzZXQiPjxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPkBjaGFyc2V0PC9jb2RlPjwvYT4gb2JleSBzcGVjaWZpYyBhbGdvcml0aG1zIGFuZCBhcmVu4oCZdCBhZmZlY3RlZCBieSB0aGUgY2FzY2FkZSBhbGdvcml0aG0uPC9wPgo8L2Jsb2NrcXVvdGU+Cgo8aDIgaWQ9InN0eWxlc2hlZXQtb3JpZ2luIj5TdHlsZXNoZWV0IE9yaWdpbjwvaDI+Cgo8cD5UaGVyZeKAmXJlIGRpZmZlcmVudCB0eXBlcywgb3Igb3JpZ2lucywgb2Ygc3R5bGVzaGVldHMuIFlvdXJzIGFyZSBjYWxsZWQgPGVtPmF1dGhvcjwvZW0+IHN0eWxlczsgdGhlcmUgYXJlIGFsc28gdXNlciBhZ2VudCBzdHlsZXMsIHdoaWNoIGFyZSB0aGUgYnJvd3NlcuKAmXMgZGVmYXVsdCBzdHlsZXMuIFVzZXIgYWdlbnQgc3R5bGVzIGhhdmUgbG93ZXIgcHJpb3JpdHkuPC9wPgoKPGJsb2NrcXVvdGU+CiAgPHA+U29tZSBicm93c2VycyBsZXQgdXNlcnMgZGVmaW5lIGEgPGVtPnVzZXIgc3R5bGVzaGVldDwvZW0+LiBUaGlzIGlzIGNvbnNpZGVyZWQgYSB0aGlyZCBvcmlnaW4sIHdpdGggYSBwcmlvcml0eSBiZXR3ZWVuIHVzZXIgYWdlbnQgYW5kIGF1dGhvciBzdHlsZXMuPC9wPgo8L2Jsb2NrcXVvdGU+Cgo8cD5UaGUgdXNlciBhZ2VudCBzdHlsZXMgc2V0IHRoaW5ncyB5b3UgdHlwaWNhbGx5IHdhbnQsIHNvIHRoZXkgZG9u4oCZdCBkbyBhbnl0aGluZyBlbnRpcmVseSB1bmV4cGVjdGVkLiBXaGVuIHlvdSBkb27igJl0IGxpa2Ugd2hhdCB0aGV5IGRvIHRvIGEgY2VydGFpbiBwcm9wZXJ0eSwganVzdCBzZXQgeW91ciBvd24gdmFsdWVzIGluIHlvdXIgc3R5bGVzaGVldC48L3A+Cgo8aDMgaWQ9ImltcG9ydGFudC1kZWNsYXJhdGlvbnMiPiFpbXBvcnRhbnQgRGVjbGFyYXRpb25zPC9oMz4KCjxwPkEgZGVjbGFyYXRpaW9uIGNhbiBiZSBtYXJrZWQgaW1wb3J0YW50IGJ5IGFkZGluZyA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj4haW1wb3J0YW50PC9jb2RlPiB0byB0aGUgZW5kIG9mIHRoZSBkZWNsYXJhdGlvbiwgYmVmb3JlIHRoZSBzZW1pY29sb246PC9wPgoKPGRpdiBjbGFzcz0ibGFuZ3VhZ2UtY3NzIGhpZ2hsaWdodGVyLXJvdWdlIj48ZGl2IGNsYXNzPSJoaWdobGlnaHQiPjxwcmUgY2xhc3M9ImhpZ2hsaWdodCI+PGNvZGU+PHNwYW4gY2xhc3M9Im50Ij5jb2xvcjwvc3Bhbj48c3BhbiBjbGFzcz0ibyI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im50Ij5yZWQ8L3NwYW4+IDxzcGFuIGNsYXNzPSJvIj4hPC9zcGFuPjxzcGFuIGNsYXNzPSJudCI+aW1wb3J0YW50PC9zcGFuPjxzcGFuIGNsYXNzPSJvIj47PC9zcGFuPgo8L2NvZGU+PC9wcmU+PC9kaXY+PC9kaXY+Cgo8cD5UaGVzZSBkZWNsYXJhdGlvbnMgbWFya2VkIHdpdGggPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+IWltcG9ydGFudDwvY29kZT4gYXJlIHRyZWF0ZWQgYXMgYSBoaWdoZXItcHJpb3JpdHkgb3JpZ2luLCBzbyB0aGUgb3ZlcmFsbCBvcmRlciBvZiBwcmVmZXJlbmNlLCBpbiBkZWNyZWFzaW5nIG9yZGVyLCBpcyB0aGlzOjwvcD4KCjxvbD4KICA8bGk+QXV0aG9yIGltcG9ydGFudDs8L2xpPgogIDxsaT5BdXRob3I7PC9saT4KICA8bGk+VXNlciBhZ2VudC48L2xpPgo8L29sPgoKPHA+VGhlIGNhc2NhZGUgaW5kZXBlbmRlbnRseSByZXNvbHZlcyBjb25mbGljdHMgZm9yIGV2ZXJ5IHByb3BlcnR5IG9mIGV2ZXJ5IGVsZW1lbnRzIG9uIHRoZSBwYWdlLjwvcD4KCjxoMyBpZD0ic3BlY2lmaWNpdHkiPlNwZWNpZmljaXR5PC9oMz4KCjxwPklmIGNvbmZsaWN0aW5nIGRlY2xhcmF0aW9ucyBjYW7igJl0IGJlIHJlc29sdmVkIGJhc2VkIG9uIHRoZWlyIG9yaWdpbiwgdGhlIGJyb3dzZXIgbmV4dCB0cmllcyB0byByZXNvbHZlIHRoZW0gYnkgbG9va2luZyBhdCB0aGVpciA8ZW0+c3BlY2lmaWNpdHk8L2VtPi4gVGhlIGJyb3dzZXJzIGV2YWx1YXRlcyBzcGVjaWZpY2l0eSBpbiB0d28gcGFydHM6IHN0eWxlcyBhcHBsaWVkIGlubGluZSBpbiB0aGUgSFRNTCBhbmQgc3R5bGVzIGFwcGxpZWQgdXNpbmcgYSBzZWxlY3Rvci48L3A+Cgo8aDQgaWQ9ImlubGluZS1zdHlsZXMiPklubGluZSBTdHlsZXM8L2g0PgoKPHA+SWYgeW91IHVzZSBhbiBIVE1MIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPnN0eWxlPC9jb2RlPiBhdHRyaWJ1dGUgdG8gYXBwbHkgc3R5bGVzLCB0aGUgZGVjbGFyYXRpb25zIGFyZSBhcHBsaWVkIG9ubHkgdG8gdGhlIGVsZW1lbnQuIFRoZXNlIGFyZSwgaW4gZWZmZWN0LCDigJxzY29wZWTigJ0gZGVjbGFyYXRpb25zLCB3aGljaCBvdmVycmlkZSBhbnkgZGVjbGFyYXRpb25zIGFwcGxpZWQgZnJvbSB5b3VyIHN0eWxlc2hlZXQgb3IgYSA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj4mbHQ7c3R5bGUmZ3Q7PC9jb2RlPiB0YWcuPC9wPgoKPHA+VG8gb3ZlcnJpZGUgaW5saW5lIGRlY2xhcmF0aW9ucyBpbiB5b3VyIHN0eWxlc2hlZXQsIHlvdeKAmWxsIG5lZWQgdG8gYWRkIGFuIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPiFpbXBvcnRhbnQ8L2NvZGU+IHRvIHRoZSBkZWNsYXJhdGlvbiwgc2hpZnRpbmcgaXQgaW50byBhIGhpZ2hlci1wcmlvcml0eSBvcmlnaW4uIElmIHRoZSBpbmxpbmUgc3R5bGVzIGFyZSBtYXJrZWQgaW1wb3J0YW50LCB0aGVuIG5vdGhpbmcgY2FuIG92ZXJyaWRlIHRoZW0uPC9wPgoKPGg0IGlkPSJzZWxlY3Rvci1zcGVjaWZpY2l0eSI+U2VsZWN0b3IgU3BlY2lmaWNpdHk8L2g0PgoKPHA+VGhlIHNlY29uZCBwYXJ0IG9mIHNwZWNpZmljaXR5IGlzIGRldGVybWluZWQgYnkgdGhlIHNlbGVjdG9ycy4gRGlmZmVyZW50IHR5cGVzIG9mIHNlbGVjdG9ycyBoYXZlIGRpZmZlcmVudCBzcGVjaWZpY2l0aWVzLiBBbiBJRCBzZWxlY3RvciBoYXMgYSBoaWdoZXIgc3BlY2lmaWNpdHkgdGhhbiBhIGNsYXNzIHNlbGVjdG9yLiBTaW1pbGFybHksIGEgY2xhc3Mgc2VsZWN0b3IgaGFzIGEgaGlnaGVyIHNwZWNpZmljaXR5IHRoYW4gYSB0YWcgc2VsZWN0b3IgKGFsc28gY2FsbGVkIGEgPGVtPnR5cGUgc2VsZWN0b3I8L2VtPikuPC9wPgoKPHA+VGhlIGV4YWN0IHJ1bGVzIG9mIHNwZWNpZmljaXR5IGFyZTo8L3A+Cgo8b2w+CiAgPGxpPklmIGEgc2VsZWN0b3IgaGFzIG1vcmUgSURzLCBpdCB3aW5zICh0aGF0IGlzLCBpdCBpcyBtb3JlIHNwZWNpZmljKS48L2xpPgogIDxsaT5JZiB0aGF0IHJlc3VsdHMgaW4gYSB0aWUsIHRoZSBzZWxlY3RvciB3aXRoIHRoZSBtb3N0IGNsYXNzZXMgd2lucy48L2xpPgogIDxsaT5JZiB0aGF0IHJlc3VsdHMgaW4gYSB0aWUsIHRoZSBzZWxlY3RvciB3aXRoIHRoZSBtb3N0IHRhZyBuYW1lcyB3aW5zLjwvbGk+Cjwvb2w+Cgo8cD5Gb3IgZXhhbXBsZTo8L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1jc3MgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0iYyI+LyogKDEpIGZvdXIgdGFncyAqLzwvc3Bhbj4KPHNwYW4gY2xhc3M9Im50Ij5odG1sPC9zcGFuPiA8c3BhbiBjbGFzcz0ibnQiPmJvZHk8L3NwYW4+IDxzcGFuIGNsYXNzPSJudCI+aGVhZGVyPC9zcGFuPiA8c3BhbiBjbGFzcz0ibnQiPmgxPC9zcGFuPiA8c3BhbiBjbGFzcz0icCI+ezwvc3Bhbj4KICA8c3BhbiBjbGFzcz0ibmwiPmNvbG9yPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibm8iPmJsdWU8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgoKPHNwYW4gY2xhc3M9ImMiPi8qICgyKSB0aHJlZSB0YWdzIGFuZCBvbmUgY2xhc3MgKi88L3NwYW4+CjxzcGFuIGNsYXNzPSJudCI+Ym9keTwvc3Bhbj4gPHNwYW4gY2xhc3M9Im50Ij5oZWFkZXI8L3NwYW4+PHNwYW4gY2xhc3M9Im5jIj4ucGFnZS1oZWFkZXI8L3NwYW4+IDxzcGFuIGNsYXNzPSJudCI+aDE8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Y29sb3I8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJubyI+b3JhbmdlPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KCjxzcGFuIGNsYXNzPSJjIj4vKiAoMykgdHdvIGNsYXNzZXMgKi88L3NwYW4+CjxzcGFuIGNsYXNzPSJuYyI+LnBhZ2UtaGVhZGVyPC9zcGFuPiA8c3BhbiBjbGFzcz0ibmMiPi50aXRsZTwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5jb2xvcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5vIj5ncmVlbjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+Cgo8c3BhbiBjbGFzcz0iYyI+LyogKDQpIG9uZSBJRCAqLzwvc3Bhbj4KPHNwYW4gY2xhc3M9Im5mIj4jcGFnZS10aXRsZTwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5jb2xvcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5vIj5yZWQ8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgo8L2NvZGU+PC9wcmU+PC9kaXY+PC9kaXY+Cgo8cD5UaGUgbW9zdCBzcGVjaWZpYyBzZWxlY3RvciBoZXJlIGlzICg0KSwgd2l0aCBvbmUgSUQuIFRoZSBuZXh0IHNwZWNpZmljIGlzICgzKSwgd2l0aCB0d28gY2xhc3MgbmFtZXMuIFNlbGVjdG9yICgzKSBoYXMgYSBoaWdoZXIgc3BlY2lmaWNpdHkgdGhhbiBzZWxlY3RvciAoMiksIGRlc3BpdGUgaXRzIGxlbmd0aDogdHdvIGNsYXNzZXMgYXJlIG1vcmUgc3BlY2lmaWMgdGhhbiBvbmUgY2xhc3MuIFRoZSBsZWFzdCBzcGVjaWZpYyBzZWxlY3RvciBpcyAoMSksIGV2ZW4gaXQgaGFzIGZvdXIgZWxlbWVudCB0eXBlcyAodGFnIG5hbWVzKS48L3A+Cgo8YmxvY2txdW90ZT4KICA8cD5Qc2V1ZG8tY2xhc3Mgc2VsZWN0b3JzICg8ZW0+ZS5nLjwvZW0+LCA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj46aG92ZXI8L2NvZGU+KSBhbmQgYXR0cmlidXRlIHNlbGVjdG9ycyAoPGVtPmUuZy48L2VtPiwgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+W3R5cGU9ImlucHV0Il08L2NvZGU+KSBlYWNoIGhhdmUgdGhlIHNhbWUgc3BlY2lmaWMgYXMgYSBjbGFzcyBzZWxlY3Rvci4gVGhlIHVuaXZlcnNhbCBzZWxlY3RvciAoPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+KjwvY29kZT4pIGFuZCBjb21iaW5hdG9ycyAoPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+Jmd0OzwvY29kZT4sIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPis8L2NvZGU+LCBhbmQgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+fjwvY29kZT4pIGhhdmUgbm8gZWZmZWN0IG9uIHNwZWNpZmljaXR5LjwvcD4KPC9ibG9ja3F1b3RlPgoKPHA+SWYgeW91IGFkZCBhIGRlY2xhcmF0aW9uIHRvIHlvdXIgQ1NTIGFuZCBpdCBzZWVtcyBoYXZlIG5vIGVmZmVjdCwgb2Z0ZW4gaXTigJlzIGJlY2F1c2UgYSBtb3JlIHNwZWNpZmljIHJ1bGUgaXMgb3ZlcnJpZGluZyBpdC48L3A+Cgo8aDQgaWQ9ImEtbm90YXRpb24tZm9yLXNwZWNpZmljaXR5Ij5BIE5vdGF0aW9uIGZvciBTcGVjaWZpY2l0eTwvaDQ+Cgo8cD5BIGNvbW1vbiB3YXkgdG8gaW5kaWNhdGUgc3BlY2lmaWNpdHkgaXMgaW4gYSBudW1iZXIgZm9ybSwgb2Z0ZW4gd2l0aCBjb21tYXMgYmV0d2VlbiBlYWNoIG51bWJlci4gRm9yIGV4YW1wbGUsIOKAnDEsMiwy4oCdIGluZGljYXRlcyBhIHNwZWNpZmljaXR5IG9mIG9uZSBJRCwgdHdvIGNsYXNzZXMsIGFuZCB0d28gdGFncy4gSURzIGhhdmluZyB0aGUgaGlnaGVzdCBwcmlvcml0eSBhcmUgbGlzdGVkIGZpcnN0LCBmb2xsb3dlZCBieSBjbGFzc2VzLCB0aGVuIHRhZ3MuPC9wPgoKPHA+VGhlIHNlbGVjdG9yIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPiNwYWdlLWhlYWRlciAjcGFnZS10aXRsZTwvY29kZT4gaGFzIHR3byBJRHMsIG5vIGNsYXNzZXMsIGFuZCBubyB0YWdzLiBXZSBjYW4gc2F5IHRoaXMgc2VsZWN0b3IgaGFzIGEgc3BlY2lmaWNpdHkgb2Yg4oCcMiwwLDDigJ0uIFRoZSA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj51bCBsaTwvY29kZT4sIHdpdGggdHdvIHRhZ3MgYnV0IG5vIElEcyBvciBjbGFzc2VzLCBoYXMgYSBzcGVjaWZpY2l0eSBvZiDigJwwLDAsMuKAnS48L3A+Cgo8cD5JdCBub3cgYmVjb21lcyBhIG1hdHRlciBvZiBjb21wYXJpbmcgdGhlIG51bWJlcnMgdG8gZGV0ZXJtaW5lIHdoaWNoIHNlbGVjdG9yIGlzIG1vcmUgc3BlY2lmaWMuIEEgc3BlY2lmaWNpdHkgb2Yg4oCcMSwwLDDigJ0gdGFrZXMgcHJlY2VkZW5jZSBvdmVyIGEgc3BlY2lmaWNpdHkgb2Yg4oCcMCwyLDLigJ0gYW5kIGV2ZXIgb3ZlciDigJwwLDEwLDDigJ0uPC9wPgoKPHA+T2NjYXNpb25hbGx5LCBwZW9wbGUgdXNlIGEgZm91ci1udW1iZXIgbm90YXRpb24gd2l0aCBhIDAgb3IgMSBpbiB0aGUgbW9zdCBzaWduaWZpY2FudCBkaWdpdCB0byByZXByZXNlbnQgd2hldGhlciBhIGRlY2xhcmF0aW9uIGlzIGFwcGxpZWQgdmlhIGlubGluZSBzdHlsZXMuIEluIHRoaXMgY2FzZSwgYW4gaW5saW5lIHN0eWxlIGhhcyBhIHNwZWNpZmljaXR5IG9mIOKAnDEsMCwwLDDigJ0uIFRoaXMgd291bGQgb3ZlcnJpZGUgc3R5bGVzIGFwcGxpZWQgdmlhIHNlbGVjdG9ycywgd2hpY2ggY291bGQgYmUgaW5kaWNhdGVkIGFzIGhhdmluZyBzcGVjaWZpY2l0aWVzIG9mIOKAnDAsMSwyLDDigJ0gb3Igc29tZXRoaW5nIHNpbWlsYXIuPC9wPgoKPGg0IGlkPSJzcGVjaWZpY2l0eS1jb25zaWRlcmF0aW9ucyI+U3BlY2lmaWNpdHkgQ29uc2lkZXJhdGlvbnM8L2g0PgoKPHA+VG8gcmFpc2UgdGhlIHNwZWNpZmljaXR5LCB0aGUgcXVpY2tlc3QgZml4IGlzIHRvIGFkZCBhbiA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj4haW1wb3J0YW50PC9jb2RlPiB0byB0aGUgZGVjbGFyYXRpb24geW91IHdhbnQgdG8gZmF2b3IuIFRoaXMgd29ya3MgYmVjYXVzZSB0aGUgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+IWltcG9ydGFudDwvY29kZT4gYW5ub3RhdGlvbiByYWlzZXMgdGhlIGRlY2xhcmF0aW9uIHRvIGEgaGlnaGVyIHByaW9yaXR5IG9yaWdpbi4gU3VyZSwgaXTigJlzIGVhc3ksIGJ1dCBpdOKAmXMgYWxzbyBhIG5haXZlIGZpeCBhbmQgbm90IHJlY29tbWVuZGVkLjwvcD4KCjxwPkluc3RlYWQgb2YgPGVtPnJhaXNpbmc8L2VtPiB0aGUgc3BlY2lmaWNpdHkgb2YgdGhlIHNlbGVjdG9yLCB3ZSBjYW4gYWxzbyA8ZW0+bG93ZXI8L2VtPiB0aGUgc3BlY2lmaWNpdHkgb2YgdGhlIHNlbGVjdG9yIHRvIGdldCB0aGUgc2FtZSByZXN1bHQuIEl0IGlzIGdlbmVyYWxseSBiZXN0IHRvIGtlZXAgc3BlY2lmaWNpdHkgbG93IHdoZW4geW91IGNhbiwgc28gd2hlbiB5b3UgbmVlZCB0byBvdmVycmlkZSBzb21ldGhpbmcsIHlvdXIgb3B0aW9ucyBhcmUgb3Blbi48L3A+Cgo8aDMgaWQ9InNvdXJjZS1vcmRlci1vZi1zdHlsZXNoZWV0Ij5Tb3VyY2UgT3JkZXIgb2YgU3R5bGVzaGVldDwvaDM+Cgo8cD5UaGUgdGhpcmQgYW5kIGZpbmFsIHN0ZXAgdG8gcmVzb2x2aW5nIHRoZSBjYXNjYWRlIGlzIHNvdXJjZSBvcmRlci4gSWYgdGhlIG9yaWdpbiBhbmQgdGhlIHNwZWNpZmljaXR5IGFyZSB0aGUgc2FtZSwgdGhlbiB0aGUgZGVjbGFyYXRpb24gdGhhdCBhcHBlYXJzIGxhdGVyIGluIHRoZSBzdHlsZXNoZWV0LCBvciBhcHBlYXJzIGluIGEgc3R5bGVzaGVldCBpbmNsdWRlZCBsYXRlciBvbiB0aGUgcGFnZSwgdGFrZXMgcHJlY2VkZW5jZS4gVGhpcyBtZWFucyB5b3UgY2FuIG1hbmlwdWxhdGUgdGhlIHNvdXJjZSBvcmRlciB0byBzdHlsZSB5b3VyIGZlYXR1cmVkIGxpbmsuIElmIHlvdSBtYWtlIHRoZSB0d28gY29uZmxpY3Rpbmcgc2VsZWN0b3JzIGVxdWFsIGluIHNwZWNpZmljaXR5LCB0aGVuIHdoaWNoZXZlciBhcHBlYXJzIGxhc3Qgd2lucy48L3A+Cgo8aDQgaWQ9Imxpbmstc3R5bGVzLWFuZC1zb3VyY2Utb3JkZXIiPkxpbmsgU3R5bGVzIGFuZCBTb3VyY2UgT3JkZXI8L2g0PgoKPHA+Rm9yIHN0eWxpbmcgbGlua3MgKDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPiZsdDthJmd0OzwvY29kZT4gdGFncyksIGl0IHNob3VsZCBnbyBpbiBhIGNlcnRhaW4gb3JkZXIuIFRoYXTigJlzIGJlY2F1c2Ugc291cmNlIG9yZGVyIGFmZmVjdHMgdGhlIGNhc2NhZGUuIFRoaXMgbGlzdGluZyBzaG93cyBzdHlsZXMgZm9yIGxpbmtzIG9uIGEgcGFnZSBpbiB0aGUg4oCcY29ycmV04oCdIG9yZGVyLCB0aGUgc28tY2FsbGVkIOKAnDxzdHJvbmc+TDwvc3Ryb25nPm88c3Ryb25nPlY8L3N0cm9uZz5lLzxzdHJvbmc+SEE8L3N0cm9uZz50ZeKAnSBvcmRlcjo8L3A+Cgo8ZGl2IGNsYXNzPSJsYW5ndWFnZS1jc3MgaGlnaGxpZ2h0ZXItcm91Z2UiPjxkaXYgY2xhc3M9ImhpZ2hsaWdodCI+PHByZSBjbGFzcz0iaGlnaGxpZ2h0Ij48Y29kZT48c3BhbiBjbGFzcz0ibnQiPmE8L3NwYW4+PHNwYW4gY2xhc3M9Im5kIj46bGluazwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5jb2xvcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5vIj5ibHVlPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+dGV4dC1kZWNvcmF0aW9uPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPm5vbmU8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgo8c3BhbiBjbGFzcz0ibnQiPmE8L3NwYW4+PHNwYW4gY2xhc3M9Im5kIj46dmlzaXRlZDwvc3Bhbj4gPHNwYW4gY2xhc3M9InAiPns8L3NwYW4+CiAgPHNwYW4gY2xhc3M9Im5sIj5jb2xvcjwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ojwvc3Bhbj4gPHNwYW4gY2xhc3M9Im5vIj5wdXJwbGU8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjs8L3NwYW4+CjxzcGFuIGNsYXNzPSJwIj59PC9zcGFuPgo8c3BhbiBjbGFzcz0ibnQiPmE8L3NwYW4+PHNwYW4gY2xhc3M9Im5kIj46aG92ZXI8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+dGV4dC1kZWNvcmF0aW9uPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj46PC9zcGFuPiA8c3BhbiBjbGFzcz0ibmIiPnVuZGVybGluZTwvc3Bhbj48c3BhbiBjbGFzcz0icCI+Ozwvc3Bhbj4KPHNwYW4gY2xhc3M9InAiPn08L3NwYW4+CjxzcGFuIGNsYXNzPSJudCI+YTwvc3Bhbj48c3BhbiBjbGFzcz0ibmQiPjphY3RpdmU8L3NwYW4+IDxzcGFuIGNsYXNzPSJwIj57PC9zcGFuPgogIDxzcGFuIGNsYXNzPSJubCI+Y29sb3I8L3NwYW4+PHNwYW4gY2xhc3M9InAiPjo8L3NwYW4+IDxzcGFuIGNsYXNzPSJubyI+cmVkPC9zcGFuPjxzcGFuIGNsYXNzPSJwIj47PC9zcGFuPgo8c3BhbiBjbGFzcz0icCI+fTwvc3Bhbj4KPC9jb2RlPjwvcHJlPjwvZGl2PjwvZGl2PgoKPHA+VGhlIGNhc2NhZGUgaXMgdGhlIHJlYXNvbiB0aGlzIG9yZGVyIG1hdHRlcnM6IGdpdmVuIHRoZSBzYW1lIHNwZWNpZmljaXR5LCBsYXRlciBzdHlsZXMgb3ZlcnJpZGUgZWFybGllciBzdHlsZXMuIElmIHR3byBvciBtb3JlIG9mIHRoZXNlIHN0YXRlcyBhcmUgdHJ1ZSBvZiBvbmUgZWxlbWVudCBhdCB0aGUgc2FtZSB0aW1lLCB0aGUgbGFzdCBvbmUgb3ZlcnJpZGUgdGhlIG90aGVycy4gSWYgdGhlIHVzZXIgaG92ZXJzIG92ZXIgYSB2aXNpdGVkIGxpbmssIHRoZSBob3ZlciBzdHlsZXMgdGFrZSBwcmVjZWRlbmNlLiBJZiB0aGUgdXNlciBhY3RpdmF0ZXMgdGhlIGxpbmsgKDxlbT5pLmUuPC9lbT4sIGNsaWNrcyBpdCkgd2hpbGUgaG92ZXJpbmcgb3ZlciBpdCwgdGhlIGFjdGl2ZSBzdHlsZXMgdGFrZSBwcmVjZWRlbmNlLjwvcD4KCjxoNCBpZD0iY2FzY2FkZWQtdmFsdWVzIj5DYXNjYWRlZCBWYWx1ZXM8L2g0PgoKPHA+VGhlIGJyb3dzZXIgZm9sbG93cyB0aGVzZSB0aHJlZSBzdGVwcyDigJQgb3JpZ2luLCBzcGVjaWZpY2l0eSwgYW5kIHNvdXJjZSBvcmRlciB0byByZXNvbHZlIGV2ZXJ5IHByb3BlcnR5IGZvciBldmVyeSBlbGVtZW50IG9uIHRoZSBwYWdlLiBBIGRlY2xhcmF0aW9uIHRoYXQg4oCcd2luc+KAnSB0aGUgY2FzY2FkZSBpcyBjYWxsZWQgYSA8ZW0+Y2FzY2FkZWQgdmFsdWU8L2VtPi4gVGhlcmXigJlzIGF0IG1vc3Qgb25lIGNhc2NhZGVkIHZhbHVlIHBlciBwcm9wZXJ0eSBwZXIgZWxlbWVudC48L3A+Cgo8aDIgaWQ9ImluaGVyaXRhbmNlIj5Jbmhlcml0YW5jZTwvaDI+Cgo8cD5JZiBhbiBlbGVtZW50IGhhcyBubyBjYXNjYWRlZCB2YWx1ZSBmb3IgYSBnaXZlbiBwcm9wZXJ0eSwgaXQgbWF5IGluaGVyaXQgb25lIGZyb20gYW4gYW5jZXN0b3IgZWxlbWVudC4gSXTigJlzIGNvbW1vbiB0byBhcHBseSBhIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmZvbnQtZmFtaWx5PC9jb2RlPiB0byB0aGUgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+Jmx0O2JvZHkmZ3Q7PC9jb2RlPiBlbGVtZW50LiBBbGwgdGhlIGFuY2VzdG9yIGVsZW1lbnRzIHdpdGhpbiB3aWxsIHRoZW4gaW5oZXJpdCB0aGlzIGZvbnQuPC9wPgoKPHA+Tm90ZSB0aGF0IDxzdHJvbmc+Tk9UPC9zdHJvbmc+IGFsbCBwcm9wZXJ0aWVzIGFyZSBpbmhlcml0ZWQsIGhvd2V2ZXIuIEJ5IGRlZmF1bHQsIG9ubHkgY2VydGFpbiBvbmVzIGFyZS4gSW4gZ2VuZXJhbCwgdGhlc2UgYXJlIHRoZSBwcm9wZXJ0aWVzIHlvdeKAmWxsIDxlbT53YW50PC9lbT4gdG8gYmUgaW5oZXJpdGVkLiBUaGV5IGFyZSBwcmltYXJpbHkgcHJvcGVydGllcyBwZXJ0YWluaW5nIHRvIHRleHQ6IDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmNvbG9yPC9jb2RlPiwgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+Zm9udDwvY29kZT4sIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmZvbnQtZmFtaWx5PC9jb2RlPiwgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+Zm9udC1zaXplPC9jb2RlPiwgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+Zm9udC13ZWlnaHQ8L2NvZGU+LCA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5mb250LXZhcmlhbnQ8L2NvZGU+LCA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5mb250LXN0eWxlPC9jb2RlPiwgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+bGluZS1oZWlnaHQ8L2NvZGU+LCA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5sZXR0ZXItc3BhY2luZzwvY29kZT4sIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPnRleHQtYWxpZ248L2NvZGU+LCA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj50ZXh0LWluZGVudDwvY29kZT4sIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPnRleHQtdHJhbnNmb3JtPC9jb2RlPiwgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+d2hpdGUtc3BhY2U8L2NvZGU+LCBhbmQgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+d29yZC1zcGFjaW5nPC9jb2RlPi48L3A+Cgo8cD5BIGZldyBvdGhlcnMgaW5oZXJpdCBhcyB3ZWxsLCBzdWNoIGFzIHRoZSBsaXN0IHByb3BlcnRpZXM6IDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmxpc3Qtc3R5bGU8L2NvZGU+LCA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5saXN0LXN0eWxlLXR5cGU8L2NvZGU+LCA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5saXN0LXN0eWxlLXBvc2l0aW9uPC9jb2RlPiwgYW5kIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmxpc3Qtc3R5bGUtaW1hZ2U8L2NvZGU+LiBUaGUgdGFibGUgYm9yZGVyIHByb3BlcnRpZXMsIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmJvcmRlci1jb2xsYXBzZTwvY29kZT4gYW5kIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmJvcmRlci1zcGFjaW5nPC9jb2RlPiwgYXJlIGFsc28gaW5oZXJpdGVkLjwvcD4KCjxwPkFib3ZlIGlzIG5vdCBxdWl0ZSBhIGNvbXByZWhlbnNpdmUgbGlzdCwgYnV0IHZlcnkgbmVhcmx5LjwvcD4KCjxoMiBpZD0ic3BlY2lhbC12YWx1ZXMiPlNwZWNpYWwgVmFsdWVzPC9oMj4KCjxwPlRoZXJlIGFyZSB0d28gc3BlY2lhbCB2YWx1ZXMgdGhhdCB5b3UgY2FuIGFwcGx5IHRvIGFueSBwcm9wZXJ0eSB0byBoZWxwIG1hbmlwdWxhdGUgdGhlIGNhc2NhZGU6IDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmluaGVyaXQ8L2NvZGU+IGFuZCA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5pbml0aWFsPC9jb2RlPi48L3A+Cgo8cD5Vc2luZyB0aGUgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+aW5oZXJpdDwvY29kZT4ga2V5d29yZCwgeW91IGNhbiBvdmVycmlkZSBhbm90aGVyIHZhbHVlIHdpdGggdGhpcywgYW5kIGl0IHdpbGwgY2F1c2UgdGhlIGVsZW1lbnQgdG8gaW5oZXJpdCB0aGF0IHZhbHVlIGZyb20gaXRzIHBhcmVudC48L3A+Cgo8cD5Tb21ldGltZXMgeW914oCZbGwgZmluZCB5b3UgaGF2ZSBzdHlsZXMgYXBwbGllZCB0byBhbiBlbGVtZW50IHRoYXQgeW91IHdhbnQgdG8gdW5kby4gWW91IGNhbiBkbyB0aGlzIGJ5IHNwZWNpZnlpbmcgdGhlIGtleXdvcmQgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+aW5pdGlhbDwvY29kZT4uIEV2ZXJ5IENTUyBwcm9wZXJ0eSBoYXMgYW4gaW5pdGlhbCwgb3IgZGVmYXVsdCwgdmFsdWUuIElmIHlvdSBhc3NpZ24gdGhlIHZhbHVlIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmluaXRpYWw8L2NvZGU+IHRvIHRoYXQgcHJvcGVydHksIHRoZW4gaXQgZWZmZWN0aXZlbHkgcmVzZXRzIHRvIGl0cyBkZWZhdWx0IHZhbHVlLiBUaGUgYmVuZWZpdCBvZiB0aGlzIGlzIHlvdSBkb27igJl0IGhhdmUgdG8gdGhpbmsgYWJvdXQgaXQgYXMgbXVjaC4gSWYgeW91IHdhbnQgdG8gcmVtb3ZlIGEgYm9yZGVyIGZyb20gYW4gZWxlbWVudCwgc2V0IDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmJvcmRlcjogaW5pdGlhbDwvY29kZT4uIElmIHlvdSB3YW50IHRvIHJlc3RvcmUgYW4gZWxlbWVudCB0byBpdHMgZGVmYXVsdCB3aWR0aCwgc2V0IDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPndpZHRoOiBpbml0aWFsPC9jb2RlPi48L3A+Cgo8YmxvY2txdW90ZT4KICA8cD5EZWNsYXJpbmcgPGNvZGUgY2xhc3M9Imxhbmd1YWdlLXBsYWludGV4dCBoaWdobGlnaHRlci1yb3VnZSI+ZGlzcGxheTogaW5pdGlhbDwvY29kZT4gaXMgZXF1aXZhbGVudCB0byA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5kaXNwbGF5OiBpbmxpbmU8L2NvZGU+LiBJdCB3b27igJl0IGV2YWx1YXRlIHRvIDxjb2RlIGNsYXNzPSJsYW5ndWFnZS1wbGFpbnRleHQgaGlnaGxpZ2h0ZXItcm91Z2UiPmRpc3BsYXk6IGJsb2NrPC9jb2RlPiByZWdhcmRsZXNzIG9mIHdoYXQgdHlwZSBvZiBlbGVtZW50IHlvdSBhcHBseSBpdCB0by4gVGhhdOKAmXMgYmVjYXVzZSA8Y29kZSBjbGFzcz0ibGFuZ3VhZ2UtcGxhaW50ZXh0IGhpZ2hsaWdodGVyLXJvdWdlIj5pbml0aWFsPC9jb2RlPiByZXNldHMgdG8gdGhlIGluaXRpYWwgdmFsdWUgZm9yIHRoZSBwcm9wZXJ0eSwgbm90IHRoZSBlbGVtZW50LjwvcD4KPC9ibG9ja3F1b3RlPgoK
                        

林宏

Frank Lin

Hey, there! This is Frank Lin (@flinhong), one of the 1.4 billion 🇨🇳. This 'inDev. Journal' site holds the exploration of my quirky thoughts and random adventures through life. Hope you enjoy reading and perusing my posts.

YOU MAY ALSO LIKE

Using Liquid in Jekyll - Live with Demos

Web Notes

2016.08.20

Using Liquid in Jekyll - Live with Demos

Liquid is a simple templating language that Jekyll uses to process pages on your site. With Liquid you can output an modify variables, have logic statements inside your pages and loop over content.

Practising closures in JavaScript

JavaScript Notes

2018.12.17

Practising closures in JavaScript

JavaScript is a very function-oriented language. As we know, functions are first class objects and can be easily assigned to variables, passed as arguments, returned from another function invocation, or stored into data structures. A function can access variable outside of it. But what happens when an outer variable changes? Does a function get the most recent value or the one that existed when the function was created? Also, what happens when a function invoked in another place - does it get access to the outer variables of the new place?