The early days of Hollywood saw plucky foley pioneers save audiences from a lifetime of boring sound design and create an art form which continues to draw admiration and fascination to this very day.
The history of art interfacing with technology often sees an ascending platform ‘borrow’ from the medium it is eclipsing. With its veer towards bundling and advertising, streaming these days increasingly resembles the cable TV packages that it sought to render redundant. Likewise, video games continue to lean into the cinematic styles and narrative conventions of film, even as the industry outpaces the movies in earnings. The same was true of cinema as it blossomed as a narrative art form in the wake of 1927’s The Jazz Singer, which introduced synchronised sound for the first time.
Until the advent of synchronised sound allowed filmmakers to create more narratively complex tales, it was that other upstart technology - radio - that stood alone as the western world’s technological cutting-edge medium for fictional drama. However, as Hollywood embraced sound, it also quickly appropriated the techniques used by radio dramas in order to boost the sonic profile of its films, making a trip to the movies a feast for the ears, as well as the eyes.
One such technique was the art of sound reproduction, a dramatic device that radio shows had been using for several years to add a dash of auditory drama to their productions. These crafty methods of duplicating real-world background noise within a cramped recording studio had already laid the foundations for the ingenious creativity that would eventually become foley work. Electric fans in metal bathtubs have been known to double for car engines, whilst actors often spoke into boxes to create the impression they were speaking from another room entirely. Sometimes, the creation of domestic ambience would be as straightforward as sloshing plates in water to recreate the sound of dishes being washed.
However, unlike radio, film productions featured actors actually performing these sound-emitting feats rather than sonically recreating them. Actors couldn’t use coconuts to simulate the sounds of riding a horse - they were too busy actually riding the horse (or at the very least, their stunt double was doing it for them). Yet still these canny sound designers found themselves being tempted away from work on the airwaves and apply their skills to the medium of film.
PGRpdiBjbGFzcz0iYWRkdG9hbnlfc2hhcmVfc2F2ZV9jb250YWluZXIgYWRkdG9hbnlfY29udGVudCBhZGR0b2FueV9jb250ZW50X3RvcCI+PGRpdiBjbGFzcz0iYWRkdG9hbnlfaGVhZGVyIj5TaGFyZSB0aGlzIEFydGljbGU6PC9kaXY+PGRpdiBjbGFzcz0iYTJhX2tpdCBhMmFfa2l0X3NpemVfMzIgYWRkdG9hbnlfbGlzdCIgZGF0YS1hMmEtdXJsPSJodHRwczovL2ZpbG1zdG9yaWVzLmNvLnVrL2ZlYXR1cmVzL2ZvdW5kLXNvdW5kcy10aGUtc2hvZS1zdGFja2VkLWhpc3Rvcnktb2YtZm9sZXktYXJ0aXN0cy8iIGRhdGEtYTJhLXRpdGxlPSJGb3VuZCBzb3VuZHMgfCBUaGUgc2hvZS1zdGFja2VkIGhpc3Rvcnkgb2YgRm9sZXkgYXJ0aXN0cyI+PGEgY2xhc3M9ImEyYV9idXR0b25fZmFjZWJvb2siIGhyZWY9Imh0dHBzOi8vd3d3LmFkZHRvYW55LmNvbS9hZGRfdG8vZmFjZWJvb2s/bGlua3VybD1odHRwcyUzQSUyRiUyRmZpbG1zdG9yaWVzLmNvLnVrJTJGZmVhdHVyZXMlMkZmb3VuZC1zb3VuZHMtdGhlLXNob2Utc3RhY2tlZC1oaXN0b3J5LW9mLWZvbGV5LWFydGlzdHMlMkYmYW1wO2xpbmtuYW1lPUZvdW5kJTIwc291bmRzJTIwJTdDJTIwVGhlJTIwc2hvZS1zdGFja2VkJTIwaGlzdG9yeSUyMG9mJTIwRm9sZXklMjBhcnRpc3RzIiB0aXRsZT0iRmFjZWJvb2siIHJlbD0ibm9mb2xsb3cgbm9vcGVuZXIiIHRhcmdldD0iX2JsYW5rIj48L2E+PGEgY2xhc3M9ImEyYV9idXR0b25fdHdpdHRlciIgaHJlZj0iaHR0cHM6Ly93d3cuYWRkdG9hbnkuY29tL2FkZF90by90d2l0dGVyP2xpbmt1cmw9aHR0cHMlM0ElMkYlMkZmaWxtc3Rvcmllcy5jby51ayUyRmZlYXR1cmVzJTJGZm91bmQtc291bmRzLXRoZS1zaG9lLXN0YWNrZWQtaGlzdG9yeS1vZi1mb2xleS1hcnRpc3RzJTJGJmFtcDtsaW5rbmFtZT1Gb3VuZCUyMHNvdW5kcyUyMCU3QyUyMFRoZSUyMHNob2Utc3RhY2tlZCUyMGhpc3RvcnklMjBvZiUyMEZvbGV5JTIwYXJ0aXN0cyIgdGl0bGU9IlR3aXR0ZXIiIHJlbD0ibm9mb2xsb3cgbm9vcGVuZXIiIHRhcmdldD0iX2JsYW5rIj48L2E+PGEgY2xhc3M9ImEyYV9idXR0b25fZW1haWwiIGhyZWY9Imh0dHBzOi8vd3d3LmFkZHRvYW55LmNvbS9hZGRfdG8vZW1haWw/bGlua3VybD1odHRwcyUzQSUyRiUyRmZpbG1zdG9yaWVzLmNvLnVrJTJGZmVhdHVyZXMlMkZmb3VuZC1zb3VuZHMtdGhlLXNob2Utc3RhY2tlZC1oaXN0b3J5LW9mLWZvbGV5LWFydGlzdHMlMkYmYW1wO2xpbmtuYW1lPUZvdW5kJTIwc291bmRzJTIwJTdDJTIwVGhlJTIwc2hvZS1zdGFja2VkJTIwaGlzdG9yeSUyMG9mJTIwRm9sZXklMjBhcnRpc3RzIiB0aXRsZT0iRW1haWwiIHJlbD0ibm9mb2xsb3cgbm9vcGVuZXIiIHRhcmdldD0iX2JsYW5rIj48L2E+PGEgY2xhc3M9ImEyYV9kZCBhZGR0b2FueV9zaGFyZV9zYXZlIGFkZHRvYW55X3NoYXJlIiBocmVmPSJodHRwczovL3d3dy5hZGR0b2FueS5jb20vc2hhcmUiPjwvYT48L2Rpdj48L2Rpdj4KPHA+PHN0cm9uZz5UaGUgZWFybHkgZGF5cyBvZiBIb2xseXdvb2Qgc2F3IHBsdWNreSBmb2xleSBwaW9uZWVycyBzYXZlIGF1ZGllbmNlcyBmcm9tIGEgbGlmZXRpbWUgb2YgYm9yaW5nIHNvdW5kIGRlc2lnbiBhbmQgY3JlYXRlIGFuIGFydCBmb3JtIHdoaWNoIGNvbnRpbnVlcyB0byBkcmF3IGFkbWlyYXRpb24gYW5kIGZhc2NpbmF0aW9uIHRvIHRoaXMgdmVyeSBkYXkuPC9zdHJvbmc+PC9wPgoKCgo8aHIgY2xhc3M9IndwLWJsb2NrLXNlcGFyYXRvciBoYXMtYWxwaGEtY2hhbm5lbC1vcGFjaXR5Ii8+CgoKCjxwPlRoZSBoaXN0b3J5IG9mIGFydCBpbnRlcmZhY2luZyB3aXRoIHRlY2hub2xvZ3kgb2Z0ZW4gc2VlcyBhbiBhc2NlbmRpbmcgcGxhdGZvcm0g4oCYYm9ycm934oCZIGZyb20gdGhlIG1lZGl1bSBpdCBpcyBlY2xpcHNpbmcuIFdpdGggaXRzIHZlZXIgdG93YXJkcyBidW5kbGluZyBhbmQgYWR2ZXJ0aXNpbmcsIHN0cmVhbWluZyB0aGVzZSBkYXlzIGluY3JlYXNpbmdseSByZXNlbWJsZXMgdGhlIGNhYmxlIFRWIHBhY2thZ2VzIHRoYXQgaXQgc291Z2h0IHRvIHJlbmRlciByZWR1bmRhbnQuIExpa2V3aXNlLCB2aWRlbyBnYW1lcyBjb250aW51ZSB0byBsZWFuIGludG8gdGhlIGNpbmVtYXRpYyBzdHlsZXMgYW5kIG5hcnJhdGl2ZSBjb252ZW50aW9ucyBvZiBmaWxtLCBldmVuIGFzIHRoZSBpbmR1c3RyeSBvdXRwYWNlcyB0aGUgbW92aWVzIGluIGVhcm5pbmdzLiBUaGUgc2FtZSB3YXMgdHJ1ZSBvZiBjaW5lbWEgYXMgaXQgYmxvc3NvbWVkIGFzIGEgbmFycmF0aXZlIGFydCBmb3JtIGluIHRoZSB3YWtlIG9mIDE5MjfigJlzIDxlbT5UaGUgSmF6eiBTaW5nZXI8L2VtPiwgd2hpY2ggaW50cm9kdWNlZCBzeW5jaHJvbmlzZWQgc291bmQgZm9yIHRoZSBmaXJzdCB0aW1lLjwvcD4KCgoKPHA+VW50aWwgdGhlIGFkdmVudCBvZiBzeW5jaHJvbmlzZWQgc291bmQgYWxsb3dlZCBmaWxtbWFrZXJzIHRvIGNyZWF0ZSBtb3JlIG5hcnJhdGl2ZWx5IGNvbXBsZXggdGFsZXMsIGl0IHdhcyB0aGF0IG90aGVyIHVwc3RhcnQgdGVjaG5vbG9neSAmIzgyMTE7IHJhZGlvICYjODIxMTsgdGhhdCBzdG9vZCBhbG9uZSBhcyB0aGUgd2VzdGVybiB3b3JsZOKAmXMgdGVjaG5vbG9naWNhbCBjdXR0aW5nLWVkZ2UgbWVkaXVtIGZvciBmaWN0aW9uYWwgZHJhbWEuIEhvd2V2ZXIsIGFzIEhvbGx5d29vZCBlbWJyYWNlZCBzb3VuZCwgaXQgYWxzbyBxdWlja2x5IGFwcHJvcHJpYXRlZCB0aGUgdGVjaG5pcXVlcyB1c2VkIGJ5IHJhZGlvIGRyYW1hcyBpbiBvcmRlciB0byBib29zdCB0aGUgc29uaWMgcHJvZmlsZSBvZiBpdHMgZmlsbXMsIG1ha2luZyBhIHRyaXAgdG8gdGhlIG1vdmllcyBhIGZlYXN0IGZvciB0aGUgZWFycywgYXMgd2VsbCBhcyB0aGUgZXllcy48L3A+CgoKCjxwPk9uZSBzdWNoIHRlY2huaXF1ZSB3YXMgdGhlIGFydCBvZiBzb3VuZCByZXByb2R1Y3Rpb24sIGEgZHJhbWF0aWMgZGV2aWNlIHRoYXQgcmFkaW8gc2hvd3MgaGFkIGJlZW4gdXNpbmcgZm9yIHNldmVyYWwgeWVhcnMgdG8gYWRkIGEgZGFzaCBvZiBhdWRpdG9yeSBkcmFtYSB0byB0aGVpciBwcm9kdWN0aW9ucy4gVGhlc2UgY3JhZnR5IG1ldGhvZHMgb2YgZHVwbGljYXRpbmcgcmVhbC13b3JsZCBiYWNrZ3JvdW5kIG5vaXNlIHdpdGhpbiBhIGNyYW1wZWQgcmVjb3JkaW5nIHN0dWRpbyBoYWQgYWxyZWFkeSBsYWlkIHRoZSBmb3VuZGF0aW9ucyBmb3IgdGhlIGluZ2VuaW91cyBjcmVhdGl2aXR5IHRoYXQgd291bGQgZXZlbnR1YWxseSBiZWNvbWUgZm9sZXkgd29yay4gRWxlY3RyaWMgZmFucyBpbiBtZXRhbCBiYXRodHVicyBoYXZlIGJlZW4ga25vd24gdG8gZG91YmxlIGZvciBjYXIgZW5naW5lcywgd2hpbHN0IGFjdG9ycyBvZnRlbiBzcG9rZSBpbnRvIGJveGVzIHRvIGNyZWF0ZSB0aGUgaW1wcmVzc2lvbiB0aGV5IHdlcmUgc3BlYWtpbmcgZnJvbSBhbm90aGVyIHJvb20gZW50aXJlbHkuIFNvbWV0aW1lcywgdGhlIGNyZWF0aW9uIG9mIGRvbWVzdGljIGFtYmllbmNlIHdvdWxkIGJlIGFzIHN0cmFpZ2h0Zm9yd2FyZCBhcyBzbG9zaGluZyBwbGF0ZXMgaW4gd2F0ZXIgdG8gcmVjcmVhdGUgdGhlIHNvdW5kIG9mIGRpc2hlcyBiZWluZyB3YXNoZWQuPC9wPgoKCgo8cD5Ib3dldmVyLCB1bmxpa2UgcmFkaW8sIGZpbG0gcHJvZHVjdGlvbnMgZmVhdHVyZWQgYWN0b3JzIGFjdHVhbGx5IHBlcmZvcm1pbmcgdGhlc2Ugc291bmQtZW1pdHRpbmcgZmVhdHMgcmF0aGVyIHRoYW4gc29uaWNhbGx5IHJlY3JlYXRpbmcgdGhlbS4gQWN0b3JzIGNvdWxkbuKAmXQgdXNlIGNvY29udXRzIHRvIHNpbXVsYXRlIHRoZSBzb3VuZHMgb2YgcmlkaW5nIGEgaG9yc2UgJiM4MjExOyB0aGV5IHdlcmUgdG9vIGJ1c3kgYWN0dWFsbHkgcmlkaW5nIHRoZSBob3JzZSAob3IgYXQgdGhlIHZlcnkgbGVhc3QsIHRoZWlyIHN0dW50IGRvdWJsZSB3YXMgZG9pbmcgaXQgZm9yIHRoZW0pLiBZZXQgc3RpbGwgdGhlc2UgY2Fubnkgc291bmQgZGVzaWduZXJzIGZvdW5kIHRoZW1zZWx2ZXMgYmVpbmcgdGVtcHRlZCBhd2F5IGZyb20gd29yayBvbiB0aGUgYWlyd2F2ZXMgYW5kIGFwcGx5IHRoZWlyIHNraWxscyB0byB0aGUgbWVkaXVtIG9mIGZpbG0uPC9wPgoKCgo8c3BhbiBpZD0ibW9yZS05NTM5NyI+PC9zcGFuPgoKCgo8cD48c3Ryb25nPlVwIGFuZCBydW5uaW5nPC9zdHJvbmc+PC9wPgoKCgo8cD5TbyB3aHkgdGhlIG5lZWQgdG8gYnJpbmcgaW4gYWRkaXRpb25hbCBwZXJzb25uZWwgdG8gcmVjcmVhdGUgdGhvc2Ugc291bmRzPyBXZWxsLCBhcyBEYW5uIENhaG4gJiM4MjExOyBhIHNlYXNvbmVkIEhvbGx5d29vZCBlZGl0b3IgJiM4MjExOyB3b3VsZCByZWNhbGwgdG8gVGVsZXZpc2lvbiBBY2FkZW15OiB0aGUgbWljcm9waG9uZXMgd2VyZW7igJl0IHNlbnNpdGl2ZSBlbm91Z2ggdG8gcGljayB1cCBmb290c3RlcHMgb3IgaGFuZCBtb3ZlbWVudHMgb3IgcGlja2luZyB1cCBhIGdsYXNzLiBNaWNyb3Bob25lcyBvbiBzZXQgd291bGQgb25seSBwaWNrIHVwIGRpYWxvZ3VlLjwvcD4KCgoKPHA+SG93ZXZlciwgcmF0aGVyIHRoYW4gYSBzdWJzdGFuZGFyZCDigJh0YWxraWXigJksIGl0IHdvdWxkIGJlIHRoZSAxOTI5IHByb2R1Y3Rpb24gb2YgPGVtPlNob3cgQm9hdDwvZW0+IHRoYXQgc3B1cnJlZCBzdHVkaW9zIGludG8gdGhlIHVzZSBvZiBmb2xleSBzb3VuZHMgJiM4MjExOyBhIHByb2Nlc3Mga2ljay1zdGFydGVkIGJ5IFVuaXZlcnNhbCBTdHVkaW9zIHdoZW4gaXQgcmVhbGlzZWQgdGhhdCBpdHMgdXBjb21pbmcg4oCYc2lsZW50IG11c2ljYWzigJkgd2FzIHByb2JhYmx5IGdvaW5nIHRvIHNlZW0gc29tZXdoYXQgZGF0ZWQgdXBvbiByZWxlYXNlLiBBdWRpZW5jZXMgaW4gdGhlIGRhd25pbmcgYWdlIG9mIHRoZSB0YWxraWVzIHdlcmUgbm93IGV4cGVjdGluZyB0aGVpciBtdXNpY2FscyB0byBjb21lIHdpdGgsIHdlbGwsIG11c2ljLCBhbmQgPGVtPlRoZSBKYXp6IFNpbmdlcjwvZW0+IGhhZCBzZXQgdGhlIHN0YW5kYXJkIG1vcmUgdGhhbiB0d28geWVhcnMgcHJpb3IuIFNvIHRoZSBzb3VuZHMgaGFkIGJlc3QgbWF0Y2ggdXAgd2l0aCB0aGUgYWN0aW9uIG9uIHNjcmVlbi48L3A+CgoKCjxwPlRvIGFkZCBzb3VuZCB0byBpdHMgc2lsZW50IGZpbG0sIFVuaXZlcnNhbCBwdXQgdG9nZXRoZXIgYSB0ZWFtIHdoaWNoIGluY2x1ZGVkIEphY2sgRm9sZXksIHRoZSBzb3VuZCBkZXNpZ25lciBhZnRlciB3aG9tIHRoZSBwcm9jZXNzIGlzIG5hbWVkLiBGb2xleSBwZW5uZWQgaGlzIHRob3VnaHRzIG9uIHRoZSBwcm9jZXNzIGluIGhpcyByZWd1bGFyIGNvbHVtbiBmb3IgVW5pdmVyc2Fs4oCZcyBpbnRlcm5hbCBuZXdzcGFwZXIgYW5kLCBsaWtlIG1vc3QgdGhpbmdzIHRoYXQgc3Bhd25lZCBmcm9tIHRoYXQgbmV3IGZyb250aWVyIGFnZSBvZiBmaWxtbWFraW5nLCBoaXMgdGhvdWdodHMgd2VyZSB1bnZhcm5pc2hlZDog4oCcRmFjZXMgYXJvdW5kIGhlcmUgd2VyZSBzbyByZWQs4oCdIEZvbGV5IHdyb3RlLCDigJxzb21lb25lIHllbGxlZCwg4oCYYXJlIHdlIHN0aWxsIGluIGJ1c2luZXNzP+KAmeKAnTwvcD4KCgoKPHA+V2hpbHN0IFdhcm5lciBCcm9zIHdhcyBzaXR0aW5nIHByZXR0eSB3aXRoIGl0cyBub3ctZXN0YWJsaXNoZWQgcHJvcHJpZXRhcnkgVml0YXBob25lIHNvdW5kIHJlY29yZGluZyB0ZWNoLCBGb2xleSBhbmQgdGhlIFVuaXZlcnNhbCB0ZWFtIHdlcmUgdXNpbmcgYW4gdW5mYW1pbGlhciBsb2FuZWQgZGV2aWNlIHRvIG11ZGRsZSB0aGVpciB3YXkgdGhyb3VnaCB0aGUgdHJhbnNpdGlvbiB0byB0aGUgdGFsa2llcywgZmlndXJpbmcgb3V0IGhvdyB0byB0dXJuIDxlbT5TaG93IEJvYXQ8L2VtPiBmcm9tIGEgc2lsZW50IG11c2ljYWwgaW50byBvbmUgd2l0aCBzb3VuZC48L3A+CgoKCjxwPkFsdGhvdWdoIHRoZSBlbmQgcmVzdWx0IHdvdWxkIGJlIGxhcmdlbHkgaWdub3JlZCBieSBjaW5lbWFnb2Vycywgc29tZSBvZiB0aGUgdGVjaG5pcXVlcyBlbXBsb3llZCBvbiB0aGF0IHByb2R1Y3Rpb24gd291bGQgZm9ybSB0aGUgZm91bmRhdGlvbiBvZiDigJhmb2xleSB3b3Jr4oCZIGFzIHdlIGtub3cgaXQg4oCYLSB3aXRoIEphY2sgRm9sZXkgYW5kIGhpcyB0ZWFtIHByb2plY3RpbmcgdGhlIHNpbGVudCBmaWxtIG9udG8gYSBzY3JlZW4gYW5kIGRldmlzaW5nIGEgaG9zdCBvZiB3YXlzIHRvIHJlcGxpY2F0ZSB0aGUgbWlzc2luZyBzb3VuZHMgYW5kIHJlY29yZGluZyB0aGVtIGluIHN5bmMgd2l0aCB0aGUgcGljdHVyZS48L3A+CgoKCjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtZnVsbCI+PGltZyBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiIHdpZHRoPSI2NjAiIGhlaWdodD0iNTExIiBzcmM9Imh0dHBzOi8vc3BhY2VzLmZpbG1zdG9yaWVzLmNvLnVrL3VwbG9hZHMvMjAyNC8xMi9UaGUtSmF6ei1TaW5nZXIuanBnIiBhbHQ9Imphenogc2luZ2VyIiBjbGFzcz0id3AtaW1hZ2UtOTUzOTgiIHNyY3NldD0iaHR0cHM6Ly9zcGFjZXMuZmlsbXN0b3JpZXMuY28udWsvdXBsb2Fkcy8yMDI0LzEyL1RoZS1KYXp6LVNpbmdlci5qcGcgNjYwdywgaHR0cHM6Ly9zcGFjZXMuZmlsbXN0b3JpZXMuY28udWsvdXBsb2Fkcy8yMDI0LzEyL1RoZS1KYXp6LVNpbmdlci0zMDB4MjMyLndlYnAgMzAwdyIgc2l6ZXM9IihtYXgtd2lkdGg6IDY2MHB4KSAxMDB2dywgNjYwcHgiIC8+PGZpZ2NhcHRpb24gY2xhc3M9IndwLWVsZW1lbnQtY2FwdGlvbiI+VGhlIEphenogU2luZ2VyIChjcmVkaXQ6IFdhcm5lciBCcm9zKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT4KCgoKPHA+PHN0cm9uZz5IZXJlIHRvIHN0YXk8L3N0cm9uZz48L3A+CgoKCjxwPkFuZCBzbywgYSBkb29tZWQgZ2FtYml0IHRvIHNhdmUgYSBsb3N0IGNhdXNlIHNwYXduZWQgYSB3aG9sZSBuZXcgYnJhbmNoIG9mIGNpbmVtYXRpYyBhcnRpc3RyeS4gRm9sZXkgYXJ0aXN0cywgbmFtZWQgdG8gaG9ub3VyIEphY2sgRm9sZXnigJlzIHRyYWlsYmxhemluZyBzdHlsZSwgYmVjYW1lIGEgc3RhcGxlIG9mIHRoZSBmaWxtbWFraW5nIGNvbW11bml0eS4gSG93ZXZlciwgYXMgbWljcm9waG9uZXMgaW1wcm92ZWQsIHlvdSBtaWdodCBpbWFnaW5lIHRoYXQgdGhlIGZsZWRnbGluZyBhcnQgb2YgZm9sZXkgd291bGQgaGF2ZSBkaWVkIG91dC4gQWZ0ZXIgYWxsLCBIb2xseXdvb2Qgc3R1ZGlvcyBhcmUgbm90b3Jpb3VzIGZvciBmaW5kaW5nIHdheXMgdG8gc3F1ZWV6ZSBhIGZpbG3igJlzIGJ1ZGdldCwgc28gd2h5IHNwbHVyZ2UgZXh0cmEgZG9sbGFycyBvbiBhIHByb2Nlc3MgdGhhdCByZWNyZWF0ZXMgYW4gYXNzZXQgdGhhdCB5b3UgYWxyZWFkeSBoYXZlPzwvcD4KCgoKPHA+VGhlIGFuc3dlciB0byB0aGF0IGxpZXMgaW4gYSB3aWRlciBjcml0aWNhbCBkZWJhdGUgdGhhdCB3YXMgZW5ndWxmaW5nIGZpbG0gaW4gZmlyc3QgaGFsZiBvZiB0aGUgMjB0aCBjZW50dXJ5LCB0aGF0IGJlaW5nIHRoZSBkZWxpY2F0ZSBiYWxhbmNlIGJldHdlZW4gcmVhbGlzbSBhbmQgZXhwcmVzc2lvbmlzbS4gV2hpbHN0IGJpZy1icmFpbmVkIGZpbG0gY3JpdGljcyBsaWtlIEFuZHLDqSBCYXppbiB3ZXJlIGFyZ3VpbmcgYWJvdXQgdGhlIG1lcml0cyBvZiBjaW5lbWHigJlzIGdyYW5kZXIgcHVycG9zZSBhcyBhIHRvb2wgZm9yIHJlYWxpc20gb3IgcHVyZSBleHByZXNzaW9uaXNtLCB0aGUgZGViYXRlIG92ZXIgc291bmQgZGVzaWduIHdhcyBhbGwgYnV0IHNldHRsZWQuIEEgY291cGxlIG9mIGRlY2FkZXMgb2YgYmVpbmcgZXhwb3NlZCB0byBmb2xleSBzb3VuZHMgaGFkIGNvbmRpdGlvbmVkIGF1ZGllbmNlcyB0byBleHBlY3QgbW9yZSBleHByZXNzaXZlIHNvdW5kcywgd2l0aCByZWFsaXNtIHJlbGVnYXRlZCB0byB0aGUgc3RhdHVzIG9mIGEgc3VwcG9ydGluZyBwbGF5ZXIuPC9wPgoKCgo8cD5BZnRlciBhbGwsIHRoZSBzY3JhcGluZyBzb3VuZCBhcyBFcnJvbCBGbHlubiBhbmQgQmFzaWwgUmF0aGJvbmUgdW5zaGVhdGhlIHRoZWlyIGJsYWRlcyBpbiAxOTM14oCZcyA8ZW0+Q2FwdGFpbiBCbG9vZDwvZW0+IG1heSBiZWFyIGxpdHRsZSByZXNlbWJsYW5jZSB0byByZWFsaXR5IChzY2FiYmFyZHMgd2VyZSBvZnRlbiBsaW5lZCB3aXRoIHNvZnQgbWF0ZXJpYWwgdG8gcHJldmVudCBibGFkZS1kdWxsaW5nIHNjcmFwaW5nKSwgYnV0IGl0IGNlcnRhaW5seSBnZXRzIHRoZSBibG9vZCBwdW1waW5nIGFzIHRoZSB0d28gSG9sbHl3b29kIGljb25zIHByZXBhcmUgdG8gZHVlbC48L3A+CgoKCjxwPlRoZSBleHByZXNzaXZlIG5hdHVyZSBvZiBmb2xleSBzb3VuZCBoYWQgYmVjb21lIGludmFsdWFibGUgdG8gdGhlIGNpbmVtYXRpYyBleHBlcmllbmNlIGFzIGEgd2hvbGUsIGFkZGluZyB0byB0aGUgaW1hZ2VzIGVtYmxhem9uaW5nIHRoZSBzY3JlZW4gdG8gY3JlYXRlIHRoYXQgbWFnaWNhbCBtb3ZpZSBmZWVsLiDigJxCeSBtZWFucyBvZiBzb21lIG15c3RlcmlvdXMgcGVyY2VwdHVhbCBhbGNoZW15LOKAnSBhcyB0aGUgbGVnZW5kYXJ5IHNvdW5kIGVkaXRvciBXYWx0ZXIgTXVyY2ggb25jZSBwdXQgaXQsIOKAnHdoYXRldmVyIHZpcnR1ZXMgc291bmQgYnJpbmdzIHRvIGZpbG0gYXJlIGxhcmdlbHkgcGVyY2VpdmVkIGFuZCBhcHByZWNpYXRlZCBieSB0aGUgYXVkaWVuY2UgaW4gdmlzdWFsIHRlcm1zLiBUaGUgYmV0dGVyIHRoZSBzb3VuZCwgdGhlIGJldHRlciB0aGUgaW1hZ2Uu4oCdPC9wPgoKCgo8cD48c3Ryb25nPkZvbGxvd2luZyBmb290c3RlcHM8L3N0cm9uZz48L3A+CgoKCjxwPlRoZSBmb2xsb3dpbmcgZGVjYWRlcyB3b3VsZCBmdXJ0aGVyIHByb3ZlIHRoYXQgZm9sZXkgd2FzIGluZGVlZCBjb25zaWRlcmVkIGFzIMOUYmV0dGVyIHNvdW5k4oCZIGFuZCB0aGUgYXJ0IGZvcm0gd291bGQgZGV2ZWxvcCBpbiBpdHMgcGVyZm9ybWFuY2UsIHRleHR1cmluZyBhbmQgaW52ZW50aXZlbmVzcy4gRXZlbiByZWNvcmRpbmcgYSBzb3VuZCBhcyBjb21tb25wbGFjZSBhcyBmb290c3RlcHMgYmVjb21lcyBhIHZlcnkgc2VyaW91cyBtYXR0ZXIgaW4gdGhlIGhhbmRzIG9mIGEgZm9sZXkgYXJ0aXN0LjwvcD4KCgoKPHA+SW4gaGVyIGV4Y2VsbGVudCBib29rLCA8ZW0+VGhlIEZvbGV5IEdyYWlsOiBUaGUgQXJ0IE9mIFBlcmZvcm1pbmcgU291bmQgRm9yIEZpbG0sIEdhbWVzLCBBbmQgQW5pbWF0aW9uPC9lbT4sIFZhbmVzc2EgVGhlbWUgQW1lbnQgZGlzY3Vzc2VzIHRoZSBhcnQgb2YgcmVjb3JkaW5nIGZvb3RzdGVwcyBvbiBubyBsZXNzIHRoYW4gNjIgc2VwYXJhdGUgb2NjYXNpb25zLCBpbmNsdWRpbmcgcmV2aWV3aW5nIGhvdyBmb2xleSBmb290c3RlcHMgaGF2ZSBldm9sdmVkIG92ZXIgdGhlIGRlY2FkZXMsIGFuZCBtb3JwaGVkIGluIHN0eWxlIHRvIHJlZmxlY3QgYXVkaWVuY2UgZXhwZWN0YXRpb25zLjwvcD4KCgoKPHA+4oCcVGhlIHN0eWxlIG9mIGZvb3RzdGVwcyBpcyBzdHJpa2luZyBieSB0b2RheeKAmXMgY2luZW1hdGljIHN0YW5kYXJkcyzigJ0gc2hlIHdyaXRlcywgcmVmbGVjdGluZyBvbiBmb2xleSB3b3JrIHNoZSBoYXMgYW5hbHlzZWQgZnJvbSBkZWNhZGVzIHBhc3QuIOKAnFRoZXJlIHdhcyBhbiBhcnRpZmljaWFsaXR5IHRvIHRoZSB0cmFjayB0aGF0IHdhcyB0b3RhbGx5IGFjY2VwdGFibGUgdG8gdGhlIHRhc3RlIGFuZCBnZW5yZSBvZiB0aGUgMTk1MHMu4oCdPC9wPgoKCgo8cD5UaGUgMTk3NyBmaWxtIDxlbT5DYWJhcmV0PC9lbT4gb2ZmZXJzIG9uZSBncmVhdCBleGFtcGxlIG9mIGhvdyBmb2xleSBmb290c3RlcHMgY2FuIHN1YnRseSBlbmhhbmNlIHRoZSBjcmVhdGl2ZSBwdXJwb3NlIG9mIGEgc2VxdWVuY2UsIGFsbCB3aXRob3V0IGFuIGF1ZGllbmNlIGV2ZXIgcmVhbGlzaW5nIGhvdyBzdWNoIGFtYmllbnQgc291bmQgY2FuIGJlIHF1aWV0bHkgcmV3aXJpbmcgdGhlaXIgdW5kZXJzdGFuZGluZyBvZiBhIHNlcXVlbmNlLiBBcyBMaXphIE1pbm5lbGxpIGFuZCBKb2VsIEdyZXkgcGVyZm9ybSB0aGVpciBsaXZlIHZlcnNpb24gb2YgPGVtPk1vbmV5PC9lbT4gb24gYSBCZXJsaW4gc3RhZ2UsIHRoZSBmaWxt4oCZcyBzb3VuZCBkZXNpZ24gYWRkcyBpbiB0aGUgYmFyZWx5IGF1ZGlibGUgc291bmQgb2YgZm9vdHN0ZXBzIGFzIHRoZSBkdW8gbW92ZSBhY3Jvc3MgdGhlIHN0YWdlLjwvcD4KCgoKPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiIHdpZHRoPSI4MDAiIGhlaWdodD0iNDUwIiBzcmM9Imh0dHBzOi8vc3BhY2VzLmZpbG1zdG9yaWVzLmNvLnVrL3VwbG9hZHMvMjAyNC8xMi9jYWJhcmV0LTgwMHg0NTAuanBnIiBhbHQ9IkNhYmFyZXQiIGNsYXNzPSJ3cC1pbWFnZS05NTQwMCIgc3Jjc2V0PSJodHRwczovL3NwYWNlcy5maWxtc3Rvcmllcy5jby51ay91cGxvYWRzLzIwMjQvMTIvY2FiYXJldC04MDB4NDUwLndlYnAgODAwdywgaHR0cHM6Ly9zcGFjZXMuZmlsbXN0b3JpZXMuY28udWsvdXBsb2Fkcy8yMDI0LzEyL2NhYmFyZXQtMzAweDE2OS53ZWJwIDMwMHcsIGh0dHBzOi8vc3BhY2VzLmZpbG1zdG9yaWVzLmNvLnVrL3VwbG9hZHMvMjAyNC8xMi9jYWJhcmV0LmpwZyAxMDAwdyIgc2l6ZXM9IihtYXgtd2lkdGg6IDgwMHB4KSAxMDB2dywgODAwcHgiIC8+PGZpZ2NhcHRpb24gY2xhc3M9IndwLWVsZW1lbnQtY2FwdGlvbiI+Q2FiYXJldCAoMjB0aCBDZW50dXJ5IFN0dWRpb3MpPC9maWdjYXB0aW9uPjwvZmlndXJlPgoKCgo8cD5UaGVzZSBhcmVu4oCZdCB0aGUgcHJvbWluZW50IGtpbmQgb2YgZm9vdHN0ZXBzIHRoYXQgeW914oCZZCBoZWFyIGZvcmVncm91bmRlZCBpbiBhIEZyZWQgQXN0YWlyZSB0YXAgcm91dGluZSwgcmF0aGVyIGEgZmVhdHVyZSB0aGF04oCZcyBsYXllcmVkIHdpdGhpbiB0aGUgc2VxdWVuY2XigJlzIHdpZGVyIHNvdW5kIGRlc2lnbiBzbyB0aGF0IGF0IHNvbWUgcG9pbnRzLCB5b3UgY2FuIGJhcmVseSBoZWFyIGl0IG92ZXIgdGhlIHZvY2FscywgdGhlIG11c2ljIGFuZCB0aGUgYW1iaWVudCBzb3VuZCBvZiB0aGUgYXVkaWVuY2UuPC9wPgoKCgo8cD5Ib3dldmVyLCBpbiBjb21iaW5hdGlvbiB3aXRoIHdpZGUgc2hvdHMgdGhhdCBzaG93IHRoZSBiYWNrIG9mIHRoZSBhdWRpZW5jZeKAmXMgaGVhZHMgYW5kIHRoZSBvY2Nhc2lvbmFsIHBhc3Npbmcgd2FpdHJlc3MgYnJpZWZseSBibG9ja2luZyB0aGUgZm9yZWdyb3VuZCBvZiB0aGUgZnJhbWUsIGl0IGNvbnRyaWJ1dGVzIHRvIGEgc3ViY29uc2Npb3VzbHkgdGFjdGlsZSB0b25lIHRoYXQgcGxhY2VzIHRoZSBhdWRpZW5jZSByaWdodCB0aGVyZSBpbiB0aGUgc2NlbmUuPC9wPgoKCgo8cD5UaGUgZm9sZXkgYXJ0aXN0IG9uIENhYmFyZXQgaXNu4oCZdCBjcmVkaXRlZCBpbiB0aGUgZmlsbeKAmXMgZW5kIHRpdGxlcyAoYSBjcmVkaXQgc2ltcGx5IHRpdGxlZCDigJhzb3VuZOKAmSBnb2VzIHRvIERhdmlkIEhpbGR5YXJkLCBhIHNvdW5kIG1peGVyIG9mIHRoYXQgZXJhKS4gQXMgc3VjaCwgdGhlIGFydGlzdCB0aGF0IHdvdWxkIGhhdmUgaGFkIHRvIGRlZnRseSBhbmQgcGFpbnN0YWtpbmdseSByZXRyYWNlIE1pbm5lbGxpIGFuZCBHcmV54oCZcyBzdGVwcyBhY3Jvc3MgdGhlIHN0YWdlIGhhcyBiZWVuIGxvc3QgdG8gdGltZS4gVGhhdCBzZWVtcyB0byBiZSB0aGUgbG90IG9mIHRoZSBmb2xleSBhcnRpc3QsIHRob3VnaDogYW4gdW5zdW5nIG1lbWJlciBvZiBhbnkgZmlsbSBwcm9kdWN0aW9uIHdob3NlIHdvcmssIHdoZW4gZG9uZSB3ZWxsLCByZW5kZXJzIHRoZW0gaW52aXNpYmxlLjwvcD4KCgoKPHA+PHN0cm9uZz5BbiBhbGllbiB0dW11bHQ8L3N0cm9uZz48L3A+CgoKCjxwPlNvbWV0aW1lcyB0aG91Z2gsIGZvbGV5IGFydGlzdHMgYXJlIGZhY2VkIHdpdGggd2hhdCBzZWVtcyBsaWtlIHRoZSBpbXBvc3NpYmxlOiBjcmVhdGUgYSBzb3VuZCB0aGF0IGRvZXNu4oCZdCBleGlzdCBhbmQgZml0IGl0IHdpdGhpbiBhIHdvcmxkIG9mIHNvdW5kcyB0aGF0IGRvLiBJdOKAmXMgYSBwaWNrbGUgdGhhdCBBbWVudCBjb25zaWRlcnMgaW4gPGVtPlRoZSBGb2xleSBHcmFpbDwvZW0+IHdoZW4gc2hlIG5vdGVzIGhvdyBtYW55IGRpcmVjdG9ycyBkZW1hbmQg4oCYc291bmQgdGhhdCBoYXMgbmV2ZXIgYmVlbiBoZWFyZCBiZWZvcmXigJkgdG8gc2V0IHRoZWlyIGZpbG1zIGFwYXJ0LiBJbiAxOTg34oCZcyA8ZW0+UHJlZGF0b3I8L2VtPiwgQW1lbnQgZm91bmQgaGVyc2VsZiBwZXJmb3JtaW5nIHRoZSBmb290c3RlcHMgb2YgdGhlIGFsaWVuIGh1bnRlciB3aXRob3V0IGtub3dpbmcgd2hhdCB0aGUgY3JlYXR1cmUgbG9va2VkIGxpa2UsIGluaXRpYWxseSB0YWtpbmcgaGVyIGN1ZXMgZnJvbSBhIGxlb3RhcmQtY2xhZCBhY3RvciBpbiB0aGUgZm9vdGFnZSBzaGUgd2FzIHNlbnQuPC9wPgoKCgo8cD5FdmVudHVhbGx5LCBBbWVudOKAmXMgbGl0aGVuZXNzIG9mIHBlcmZvcm1hbmNlIHdhcyBtaXhlZCB3aXRoIGEgaGVhdmllciBzb3VuZCB0byBjcmVhdGUgdGhlIGltcHJlc3Npb24gb2YgcG93ZXIgYW5kIGdyYWNlZnVsbmVzcyB0aGF0IHRoZSBjcmVhdHVyZSBwb3NzZXNzZWQsIHRoZSBjb21iaW5hdGlvbiBvZiByZWFsIHBlcmZvcm1hbmNlIHNlcnZpbmcgdG8gcm9vdCBzb3VuZCBkZXNpZ24gaW4gcmVhbGl0eS4gSXTigJlzIGFuIGFwcHJvYWNoIHRoYXQgRGF2aWQgU3RvbmUsIDxlbT5QcmVkYXRvcjwvZW0+4oCZcyBzdXBlcnZpc2luZyBzb3VuZCBlZmZlY3RzIGVkaXRvciB0cmllZCB0byBpbmNvcnBvcmF0ZSB3aXRoIHRoZSBmaWxt4oCZcyB3aWRlciBtaXg6IHRoZSBjcmVhdHVyZeKAmXMgc2lnbmF0dXJlIHNob3VsZGVyLW1vdW50ZWQgcGxhc21hIGNhbm5vbiB1c2VkIG1hbnVmYWN0dXJlZCBlZmZlY3RzIGZvciB0aGUgYWxpZW4gd2VhcG9uLCBidXQgU3RvbmUgc3RpbGwgZm91bmQgaGltc2VsZiByb290aW5nIGl0IHRocm91Z2ggdGhlIHVzZSBvZiBBbWVudOKAmXMgZm9sZXkgd29yay48L3A+CgoKCjxwPuKAnEl0IGhhZCB0byBzb3VuZCBsaWtlIGl0IHdhcyBtb3ZlZCBieSBtYWdpYyzigJ0gaGUgZXhwbGFpbmVkLiDigJxTbyBvbiB0aGUgZmFyLWF3YXkgc2hvdHMgd2UganVzdCB1c2VkIEpvaG4gUG9zcGlzaWzigJlzIFtkZXNpZ25lZCBlZmZlY3RzXSB3b3JrLiBCdXQgaW4gdGhlIGNsb3NlLXVwcywgd2UgY29tYmluZWQgaXQgd2l0aCBmb2xleSBiZWNhdXNlIGl0IG5lZWRlZCBtb3JlIHNwZWNpZmljIGFjdGlvbnMuIE15IGluY2xpbmF0aW9uIGlzIHRvIHVzZSBmb2xleSB0byBhbmNob3IgdGhpbmdzIGxpa2UgdGhhdCBpbiByZWFsaXR5LuKAnTwvcD4KCgoKPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBsb2FkaW5nPSJsYXp5IiBkZWNvZGluZz0iYXN5bmMiIHdpZHRoPSI4MDAiIGhlaWdodD0iNDUwIiBzcmM9Imh0dHBzOi8vc3BhY2VzLmZpbG1zdG9yaWVzLmNvLnVrL3VwbG9hZHMvMjAyNC8xMi9wcmVkYXRvci0xOTg3LTgwMHg0NTAuanBnIiBhbHQ9InByZWRhdG9yIiBjbGFzcz0id3AtaW1hZ2UtOTU0MDEiIHNyY3NldD0iaHR0cHM6Ly9zcGFjZXMuZmlsbXN0b3JpZXMuY28udWsvdXBsb2Fkcy8yMDI0LzEyL3ByZWRhdG9yLTE5ODctODAweDQ1MC53ZWJwIDgwMHcsIGh0dHBzOi8vc3BhY2VzLmZpbG1zdG9yaWVzLmNvLnVrL3VwbG9hZHMvMjAyNC8xMi9wcmVkYXRvci0xOTg3LTMwMHgxNjkud2VicCAzMDB3LCBodHRwczovL3NwYWNlcy5maWxtc3Rvcmllcy5jby51ay91cGxvYWRzLzIwMjQvMTIvcHJlZGF0b3ItMTk4Ny5qcGcgMTUwMHciIHNpemVzPSIobWF4LXdpZHRoOiA4MDBweCkgMTAwdncsIDgwMHB4IiAvPjxmaWdjYXB0aW9uIGNsYXNzPSJ3cC1lbGVtZW50LWNhcHRpb24iPlByZWRhdG9yIChDcmVkaXQ6IDIwdGggQ2VudHVyeSBTdHVkaW9zKTwvZmlnY2FwdGlvbj48L2ZpZ3VyZT4KCgoKPHA+SXQgYWxsIG1ha2VzIHNlbnNlLCB0aG91Z2guIFRoZSBmaWxt4oCZcyBwdW5jaGVzIGFyZSB0aGUgbW9zdCB2aXNjZXJhbCBzb3VuZHMgaW4gYW4gaW1wZWNjYWJseSBkZXNpZ25lZCBzb3VuZHNjYXBlLCBidXQgd2hlbiB5b3UgY29uc2lkZXIgdGhhdCB0aGVzZSBicmF3bHMgYXJlIHRoZSBvbmx5IHRoaW5ncyB0aGF0IG1ha2UgdGhlIGZpbG3igJlzIGNoYXJhY3RlcnMgZmVlbCBhbGl2ZSwgdGhlIGZvbGV5IGFydGlzdHJ5IHVuZGVyc2NvcmVzIHRoYXQgaWRlYSBjb21wbGV0ZWx5LiBMaWtld2lzZSwgMTk4OOKAmXMgPGVtPkRpZSBIYXJkPC9lbT4gZm91bmQgVmFuZXNzYSBUaGVtZSBBbWVudCBoYXZpbmcgdG8gcGVyZm9ybSB0aGUgYmFyZS1mb290ZWQgZm9vdHN0ZXBzIG9mIHRoZSBmaWxt4oCZcyBoZXJvLCBKb2huIE1jQ2xhbmUsIOKAnHdpdGggbW9yZSB3ZWlnaHQgYW5kIGVtcGhhc2lzIHRoYW4gaWYgSSBoYWQgYSBzaG9lIG9uLuKAnTwvcD4KCgoKPHA+QW1lbnQgYW5kIGZlbGxvdyBmb2xleSBhcnRpc3QgUm9iaW4gSGFybGFuIGF1ZGl0aW9uZWQgbWFueSBwYWlycyBvZiBzaG9lcyBmb3IgSGFucyBHcnViZXIsIHRoZSBmaWxt4oCZcyBhbnRhZ29uaXN0LCBub3RpbmcgdGhhdCB0aGV5IGZpbmFsbHkg4oCcc2VsZWN0ZWQgYSBnb3JnZW91cy4gc291bmRpbmcgcGFpciBvZiBzaG9lcyB0aGF0IGhhZCBhIHJpY2ggYW5kIGF1dGhvcml0YXJpYW4gc291bmQuIFtHcnViZXJdIHdhcyB0aGUgYm9zcyBvZiB0aGUgd2hvbGUgb3BlcmF0aW9uLCBhbmQgaGUgbmVlZGVkIHRvIHNvdW5kIOKAmGluIGNoYXJnZeKAmS7igJ08L3A+CgoKCjxwPkFzIHdpdGggPGVtPkZpZ2h0IENsdWI8L2VtPiwgdGhlc2UgY2FyZWZ1bGx5IHBlcmZvcm1lZCBjb250cmFzdGluZyBzb3VuZHMgZG8gbW9yZSB0aGFuIGp1c3QgZGlzdGluZ3Vpc2ggdGhlIHR3byBjaGFyYWN0ZXJz4oCZIG1hbm5lciBvZiB3YWxraW5nLiBUaGV5IGVtcGhhc2lzZSB0aGUgcG93ZXIgZHluYW1pYyBiZXR3ZWVuIHRoZW0sIHJhaXNpbmcgdGhlIG5hcnJhdGl2ZSBzdGFrZXMgYW5kIGVzdGFibGlzaGluZyBlYWNoIGNoYXJhY3RlcuKAmXMgYXJjaGV0eXBlOiB0aGUgZGVzcGVyYXRlLCB1bnByZXBhcmVkIGhlcm8gZmFjaW5nIG9mZiBhZ2FpbnN0IHRoZSBzbGljayBhbmQgY3VubmluZyB2aWxsYWluLiBFdmVyeSBmb2xleSBhcnRpc3Qga25vd3MgdGhhdCBmb290c3RlcHMgYXJlIG5ldmVyIGp1c3QgZm9vdHN0ZXBzLiBJdOKAmXMgd2h5IHNvIG1hbnkgb2YgdGhlbSBoYXZlIGEgd2hvbGUgcm9vbSBmdWxsIG9mIGRpZmZlcmVudCBzaG9lcyBmb3IgZXZlcnkgcG9zc2libGUgb2NjYXNpb24uPC9wPgoKCgo8cD48c3Ryb25nPlNvdW5kIHByb2dyZXNzPzwvc3Ryb25nPjwvcD4KCgoKPHA+V2hpbHN0IHRoZSBvcmlnaW5zIG9mIGZvbGV5IHdvcmsgbWF5IGhhdmUgYmVlbiByb290ZWQgaW4gdGhlIHdpbGQgZGF5cyBvZiBlYXJseSBIb2xseXdvb2QgaW52ZW50aXZlbmVzcywgdGhlIGNvbGQgYWxnb3JpdGhtcyBvZiBtYWNoaW5lIGxlYXJuaW5nIGNvdWxkIHdlbGwgcGxheSBhIHBhcnQgaW4gdGhlIGFydCBmb3Jt4oCZcyBmdXR1cmUuIFdoaWxzdCBubyBtYWNoaW5lIGlzIGFibGUgdG8gY3JlYXRlIHdpdGggdGhlIHNhbWUgaW5nZW51aXR5IGFzIGEgaHVtYW4gZm9sZXkgYXJ0aXN0LCBtYWNoaW5lIGxlYXJuaW5nIGNvdWxkIHNwZWVkIHVwIG1hbnkgb2YgdGhlIHByb2Nlc3NlcyB0aGF0IHVuZGVycGluIHRoZWlyIHdvcmsuIFNldmVyYWwgc3R1ZGllcyBoYXZlIHNob3duIG92ZXIgdGhlIHBhc3QgZmV3IHllYXJzIHRoYXQgaHVtYW5zIGNhbiBzdHJ1Z2dsZSB0byB0ZWxsIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gYSBmb2xleSBzb3VuZCBjcmVhdGVkIGJ5IGEgaHVtYW4gYW5kIG9uZSB0aGF0IGlzIGNyZWF0ZWQgYnkgYSBjb21wdXRlciDigJgtIGFuZCB2YXJpb3VzIHBpZWNlcyBvZiBzb2Z0d2FyZSBhcmUgbm93IGF2YWlsYWJsZSB0byBlYXNlIHRoZSBwcm9jZXNzIG9mIHN5bmNpbmcgc291bmQuPC9wPgoKCgo8cD5Ib3dldmVyLCB3b3VsZCBhIGNvbXB1dGVyIGZpZ3VyZSBvdXQgdGhhdCB5b3UgY2FuIHJlcGxpY2F0ZSB0aGUgc291bmQgb2YgYSBnaWFudCBib3VsZGVyIHR1bWJsaW5nIGFmdGVyIGEgZmxlZWluZyBhcmNoYWVvbG9naXN0IGJ5IHJvbGxpbmcgYSBjYXIgZG93biBhIGhpbGwgd2l0aG91dCB0aGUgbW90b3IgcnVubmluZz8gV2UgZG9u4oCZdCB0aGluayBzby4gQ291bGQgYSBtYWNoaW5lIGRlY2lkZSB0byBtaXggdGhlIG1vdmVtZW50IG9mIHBhY2thZ2VkIGxpdmVyIHdpdGggamVsbHkgYW5kIHBvcGNvcm4gdG8gY3JlYXRlIHRoZSBzb25nIG9mIEUuVC4gbW92aW5nPyBBZ2FpbiwgdGhhdOKAmXMgbGlrZWx5IGEgbm8uIEFzIGxvbmcgYXMgaHVtYW4gaW52ZW50aXZlbmVzcyBpc27igJl0IHN1cGVyc2VkZWQgYnkgbWFjaGluZXMsIHRoZXJl4oCZcyBhbHdheXMgZ29pbmcgdG8gYmUgYSBuZWVkIGZvciB0aGUgZm9sZXkgYXJ0aXN0cyBhbmQgdGhlaXIgbWFueSwgbWFueSBwYWlycyBvZiBzaG9lcy48L3A+CjxkaXYgY2xhc3M9ImFkZHRvYW55X3NoYXJlX3NhdmVfY29udGFpbmVyIGFkZHRvYW55X2NvbnRlbnQgYWRkdG9hbnlfY29udGVudF9ib3R0b20iPjxkaXYgY2xhc3M9ImFkZHRvYW55X2hlYWRlciI+U2hhcmUgdGhpcyBBcnRpY2xlOjwvZGl2PjxkaXYgY2xhc3M9ImEyYV9raXQgYTJhX2tpdF9zaXplXzMyIGFkZHRvYW55X2xpc3QiIGRhdGEtYTJhLXVybD0iaHR0cHM6Ly9maWxtc3Rvcmllcy5jby51ay9mZWF0dXJlcy9mb3VuZC1zb3VuZHMtdGhlLXNob2Utc3RhY2tlZC1oaXN0b3J5LW9mLWZvbGV5LWFydGlzdHMvIiBkYXRhLWEyYS10aXRsZT0iRm91bmQgc291bmRzIHwgVGhlIHNob2Utc3RhY2tlZCBoaXN0b3J5IG9mIEZvbGV5IGFydGlzdHMiPjxhIGNsYXNzPSJhMmFfYnV0dG9uX2ZhY2Vib29rIiBocmVmPSJodHRwczovL3d3dy5hZGR0b2FueS5jb20vYWRkX3RvL2ZhY2Vib29rP2xpbmt1cmw9aHR0cHMlM0ElMkYlMkZmaWxtc3Rvcmllcy5jby51ayUyRmZlYXR1cmVzJTJGZm91bmQtc291bmRzLXRoZS1zaG9lLXN0YWNrZWQtaGlzdG9yeS1vZi1mb2xleS1hcnRpc3RzJTJGJmFtcDtsaW5rbmFtZT1Gb3VuZCUyMHNvdW5kcyUyMCU3QyUyMFRoZSUyMHNob2Utc3RhY2tlZCUyMGhpc3RvcnklMjBvZiUyMEZvbGV5JTIwYXJ0aXN0cyIgdGl0bGU9IkZhY2Vib29rIiByZWw9Im5vZm9sbG93IG5vb3BlbmVyIiB0YXJnZXQ9Il9ibGFuayI+PC9hPjxhIGNsYXNzPSJhMmFfYnV0dG9uX3R3aXR0ZXIiIGhyZWY9Imh0dHBzOi8vd3d3LmFkZHRvYW55LmNvbS9hZGRfdG8vdHdpdHRlcj9saW5rdXJsPWh0dHBzJTNBJTJGJTJGZmlsbXN0b3JpZXMuY28udWslMkZmZWF0dXJlcyUyRmZvdW5kLXNvdW5kcy10aGUtc2hvZS1zdGFja2VkLWhpc3Rvcnktb2YtZm9sZXktYXJ0aXN0cyUyRiZhbXA7bGlua25hbWU9Rm91bmQlMjBzb3VuZHMlMjAlN0MlMjBUaGUlMjBzaG9lLXN0YWNrZWQlMjBoaXN0b3J5JTIwb2YlMjBGb2xleSUyMGFydGlzdHMiIHRpdGxlPSJUd2l0dGVyIiByZWw9Im5vZm9sbG93IG5vb3BlbmVyIiB0YXJnZXQ9Il9ibGFuayI+PC9hPjxhIGNsYXNzPSJhMmFfYnV0dG9uX2VtYWlsIiBocmVmPSJodHRwczovL3d3dy5hZGR0b2FueS5jb20vYWRkX3RvL2VtYWlsP2xpbmt1cmw9aHR0cHMlM0ElMkYlMkZmaWxtc3Rvcmllcy5jby51ayUyRmZlYXR1cmVzJTJGZm91bmQtc291bmRzLXRoZS1zaG9lLXN0YWNrZWQtaGlzdG9yeS1vZi1mb2xleS1hcnRpc3RzJTJGJmFtcDtsaW5rbmFtZT1Gb3VuZCUyMHNvdW5kcyUyMCU3QyUyMFRoZSUyMHNob2Utc3RhY2tlZCUyMGhpc3RvcnklMjBvZiUyMEZvbGV5JTIwYXJ0aXN0cyIgdGl0bGU9IkVtYWlsIiByZWw9Im5vZm9sbG93IG5vb3BlbmVyIiB0YXJnZXQ9Il9ibGFuayI+PC9hPjxhIGNsYXNzPSJhMmFfZGQgYWRkdG9hbnlfc2hhcmVfc2F2ZSBhZGR0b2FueV9zaGFyZSIgaHJlZj0iaHR0cHM6Ly93d3cuYWRkdG9hbnkuY29tL3NoYXJlIj48L2E+PC9kaXY+PC9kaXY+