4.8 sec in total
430 ms
4.1 sec
302 ms
Visit adfis.de now to see the best up-to-date Ad FiS content and also check out these interesting facts you probably never knew about adfis.de
The only doped activated carbon and filter systems for desulphurisation. Highest sulphur intake. Made in Germany. Fast and flexible delivery.
Visit adfis.deWe analyzed Adfis.de page load time and found that the first response time was 430 ms and then it took 4.4 sec to load all DOM resources and completely render a web page. This is a poor result, as 65% of websites can load faster.
adfis.de performance score
name
value
score
weighting
Value5.4 s
6/100
10%
Value9.6 s
0/100
25%
Value10.1 s
9/100
10%
Value25,060 ms
0/100
30%
Value0.043
99/100
15%
Value34.8 s
0/100
10%
430 ms
1037 ms
224 ms
664 ms
443 ms
Our browser made a total of 75 requests to load all elements on the main page. We found that 64% of them (48 requests) were addressed to the original Adfis.de, 11% (8 requests) were made to Youtube.com and 8% (6 requests) were made to . The less responsive or slowest element that took the longest time to load (1.3 sec) belongs to the original domain Adfis.de.
Page size can be reduced by 437.1 kB (48%)
912.2 kB
475.1 kB
In fact, the total size of Adfis.de main page is 912.2 kB. This result falls beyond the top 1M of websites and identifies a large and not optimized web page that may take ages to load. 80% of websites need less resources to load and that’s why Accessify’s recommendations for optimization and resource minification can be helpful for this project. CSS take 483.7 kB which makes up the majority of the site volume.
Potential reduce by 96.9 kB
HTML content can be minified and compressed by a website’s server. The most efficient way is to compress content using GZIP which reduces data amount travelling through the network between server and browser. HTML code on this page is well minified. It is highly recommended that content of this web page should be compressed using GZIP, as it can save up to 96.9 kB or 75% of the original size.
Potential reduce by 43 B
Image size optimization can help to speed up a website loading time. The chart above shows the difference between the size before and after optimization. Ad FiS images are well optimized though.
Potential reduce by 27.8 kB
It’s better to minify JavaScript in order to improve website performance. The diagram shows the current total size of all JavaScript files against the prospective JavaScript size after its minification and compression. It is highly recommended that all JavaScript files should be compressed and minified as it can save up to 27.8 kB or 18% of the original size.
Potential reduce by 312.4 kB
CSS files minification is very important to reduce a web page rendering time. The faster CSS files can load, the earlier a page can be rendered. Adfis.de needs all CSS files to be minified and compressed as it can save up to 312.4 kB or 65% of the original size.
Number of requests can be reduced by 36 (67%)
54
18
The browser has sent 54 CSS, Javascripts, AJAX and image requests in order to completely render the main page of Ad FiS. We recommend that multiple CSS and JavaScript files should be merged into one by each type, as it can help reduce assets requests from 30 to 1 for JavaScripts and from 8 to 1 for CSS and as a result speed up the page load time.
adfis.de
430 ms
1037 ms
style.min.css
224 ms
dashicons.min.css
664 ms
autoptimize_single_819212e964cc7be9c597e1a4932c60a0.css
443 ms
mediaelementplayer-legacy.min.css
336 ms
wp-mediaelement.min.css
337 ms
autoptimize_single_cf1c03bc67ce89967b9afe0b7507def0.css
793 ms
autoptimize_single_d647a3ff5dc23840255fdf606d393ff7.css
337 ms
jquery.min.js
672 ms
jquery-migrate.min.js
446 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgcGFybXMgPSB7InZlcnNpb24iOiI0LjMiLCJjbG9zZV9wb3B1cF9hdXRvIjoib2ZmIiwiYW5pbWF0aW9uX3RpbWUiOiIxMDAwIiwibm9sYWJlbCI6Ik5PIiwieWVzbGFiZWwiOiJZRVMiLCJzaG93cG9saWN5bmFtZSI6IlNob3cgUHJpdmFjeSBQb2xpY3kgXC8gQ29va2llIERldGFpbHMiLCJtYWluY2F0bmFtZSI6IkdlbmVyYWwgQ29va2llcyIsImxhbmd1YWdlIjoiZW4iLCJ3b29jb21tZXJjZWNvb2tpZXMiOiIgIiwicG9seWxhbmdjb29raWUiOiJwbGxfbGFuZ3VhZ2UiLCJ1c2Vub2Nvb2tpZXMiOiJUaGlzIFNlcnZpZXMgdXNlIG5vIENvb2tpZXMuIiwibm9jb29raWV0ZXh0IjoiVGhpcyBTZXJ2aWNlIHVzZSBjdXJyZW50bHkgbm8gQ29va2llcy4iLCJjb29raWV0ZXh0dXNhZ2UiOiJVc2VkIENvb2tpZXM6IiwiY29va2lldGV4dHVzYWdlYmVmb3JlIjoiVGhpcyBDb29raWVzIGNhbiBiZSBzdG9yZWQ6IiwiYWRtaW5hamF4dXJsIjoiaHR0cHM6XC9cL3d3dy5hZGZpcy5kZVwvd3AtYWRtaW5cL2FkbWluLWFqYXgucGhwIiwidmd3b3J0X2RlZmF1bHRvcHRpbm91dCI6Im9wdGluIiwia29rb19kZWZhdWx0b3B0aW5vdXQiOiJvcHRpbiIsImdhX2RlZmF1bHRvcHRpbm91dCI6Im9wdGluIiwibm90aWNlX2Rlc2lnbiI6ImRhcmsiLCJleHBpcmV0aW1lIjoiNyIsIm5vdGljZXN0eWxlIjoic3R5bGUzIiwiYmFja2dyb3VuZGNvbG9yIjoiIzMzMyIsInRleHRjb2xvciI6IiNmZmZmZmYiLCJidXR0b25iYWNrZ3JvdW5kIjoiI2ZmZiIsImJ1dHRvbnRleHRjb2xvciI6IiMzMzMiLCJidXR0b25saW5rY29sb3IiOiIiLCJjb29raWV0ZXh0IjoiV2UgdXNlIHRlY2huaWNhbGx5IG5lY2Vzc2FyeSBjb29raWVzIG9uIG91ciB3ZWJzaXRlIGFuZCBleHRlcm5hbCBzZXJ2aWNlcy5cbkJ5IGRlZmF1bHQsIGFsbCBzZXJ2aWNlcyBhcmUgZGlzYWJsZWQuIFlvdSBjYW4gdHVybiBvciBvZmYgZWFjaCBzZXJ2aWNlIGlmIHlvdSBuZWVkIHRoZW0gb3Igbm90LlxuRm9yIG1vcmUgaW5mb3JtYXRpb25zIHBsZWFzZSByZWFkIG91ciBwcml2YWN5IHBvbGljeS5cbiIsImNvb2tpZWFjY2VwdHRleHQiOiJBY2NlcHQiLCJidG5fdGV4dF9jdXN0b21pemUiOiJDdXN0b21pemUiLCJjb29raWV0ZXh0c2Nyb2xsIjoiRHVyY2ggZGFzIGZvcnRnZXNldHp0ZSBibFx1MDBlNHR0ZXJuIHN0aW1tZW4gU2llIGRlciBOdXR6dW5nIHZvbiBleHRlcm5lbiBEaWVuc3RlbiB1bmQgQ29va2llcyB6dS4iLCJwb2xpY3l1cmwiOiJodHRwczpcL1wvd3d3LmFkZmlzLmRlXC91ZWJlci11bnNcL2RhdGVuc2NodXR6IiwicG9saWN5dXJsdGV4dCI6IkhpZXIgZmluZGVuIFNpZSB1bnNlcmUgRGF0ZW5zY2h1dHpiZXN0aW1tdW5nZW4iLCJhYmxlaG5lbnR4dCI6IlJlamVjdCIsImFibGVobmVudGV4dCI6IllvdSBoYXZlIHJlamVjdGVkIHRoZSBjb25kaXRpb25zLiBZb3Ugd2lsbCBiZSByZWRpcmVjdGVkIHRvIGdvb2dsZS5jb20uIiwiYWJsZWhuZW51cmwiOiJ3d3cuZ29vZ2xlLmRlIiwic2hvd3JlamVjdGJ0biI6Im9mZiIsInBvcHVwYWdicyI6IjxkaXYgY2xhc3M9J2RzZ3ZvX2Fpb19wb2xpY3knPjxoMj5Qcml2YWN5IFBvbGljeTxcL2gyPjxiciBcLz5cbkFzIG9mOiAwNS4xMC4yMDIyPFwvcD5cbjxwPldlIGFyZSB2ZXJ5IGRlbGlnaHRlZCB0aGF0IHlvdSBoYXZlIHNob3duIGludGVyZXN0IGluIG91ciBlbnRlcnByaXNlLiBEYXRhIHByb3RlY3Rpb24gaXMgb2YgYSBwYXJ0aWN1bGFybHkgaGlnaCBwcmlvcml0eSBmb3IgdGhlIG1hbmFnZW1lbnQgb2YgdXMuIFRoZSB1c2Ugb2YgdGhlIEludGVybmV0IHBhZ2VzIG9mIHVzIGlzIHBvc3NpYmxlIHdpdGhvdXQgYW55IGluZGljYXRpb24gb2YgcGVyc29uYWwgZGF0YTsgaG93ZXZlciwgaWYgYSBkYXRhIHN1YmplY3Qgd2FudHMgdG8gdXNlIHNwZWNpYWwgZW50ZXJwcmlzZSBzZXJ2aWNlcyB2aWEgb3VyIHdlYnNpdGUsIHByb2Nlc3Npbmcgb2YgcGVyc29uYWwgZGF0YSBjb3VsZCBiZWNvbWUgbmVjZXNzYXJ5LiBJZiB0aGUgcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIGlzIG5lY2Vzc2FyeSBhbmQgdGhlcmUgaXMgbm8gc3RhdHV0b3J5IGJhc2lzIGZvciBzdWNoIHByb2Nlc3NpbmcsIHdlIGdlbmVyYWxseSBvYnRhaW4gY29uc2VudCBmcm9tIHRoZSBkYXRhIHN1YmplY3QuPFwvcD5cbjxwPlRoZSBwcm9jZXNzaW5nIG9mIHBlcnNvbmFsIGRhdGEsIHN1Y2ggYXMgdGhlIG5hbWUsIGFkZHJlc3MsIGUtbWFpbCBhZGRyZXNzLCBvciB0ZWxlcGhvbmUgbnVtYmVyIG9mIGEgZGF0YSBzdWJqZWN0IHNoYWxsIGFsd2F5cyBiZSBpbmxpbmUgd2l0aCB0aGUgR2VuZXJhbCBEYXRhIFByb3RlY3Rpb24gUmVndWxhdGlvbiAoR0RQUiksIGFuZCBpbiBhY2NvcmRhbmNlIHdpdGggdGhlIGNvdW50cnktc3BlY2lmaWMgZGF0YSBwcm90ZWN0aW9uIHJlZ3VsYXRpb25zIGFwcGxpY2FibGUgdG8gdXMuIEJ5IG1lYW5zIG9mIHRoaXMgZGF0YSBwcm90ZWN0aW9uIGRlY2xhcmF0aW9uLCBvdXIgZW50ZXJwcmlzZSB3b3VsZGxpa2UgdG8gaW5mb3JtIHRoZSBnZW5lcmFsIHB1YmxpYyBvZiB0aGUgbmF0dXJlLCBzY29wZSwgYW5kIHB1cnBvc2Ugb2YgdGhlIHBlcnNvbmFsIGRhdGEgd2UgY29sbGVjdCwgdXNlIGFuZCBwcm9jZXNzLiBGdXJ0aGVybW9yZSwgZGF0YSBzdWJqZWN0cyBhcmUgaW5mb3JtZWQsIGJ5IG1lYW5zIG9mIHRoaXMgZGF0YSBwcm90ZWN0aW9uIGRlY2xhcmF0aW9uLCBvZiB0aGUgcmlnaHRzIHRvIHdoaWNoIHRoZXkgYXJlIGVudGl0bGVkLjxcL3A+XG48cD5BcyB0aGUgY29udHJvbGxlciwgd2UgaGFzIGltcGxlbWVudGVkIG51bWVyb3VzIHRlY2huaWNhbCBhbmQgb3JnYW5pemF0aW9uYWwgbWVhc3VyZXMgdG8gZW5zdXJlIHRoZSBtb3N0IGNvbXBsZXRlIHByb3RlY3Rpb24gb2YgcGVyc29uYWwgZGF0YSBwcm9jZXNzZWQgdGhyb3VnaCB0aGlzIHdlYnNpdGUuIEhvd2V2ZXIsIEludGVybmV0LWJhc2VkIGRhdGEgdHJhbnNtaXNzaW9ucyBtYXkgaW4gcHJpbmNpcGxlIGhhdmUgc2VjdXJpdHkgZ2Fwcywgc28gYWJzb2x1dGUgcHJvdGVjdGlvbiBtYXkgbm90IGJlIGd1YXJhbnRlZWQuIEZvciB0aGlzIHJlYXNvbiwgZXZlcnkgZGF0YSBzdWJqZWN0IGlzIGZyZWUgdG8gdHJhbnNmZXIgcGVyc29uYWwgZGF0YSB0byB1cyB2aWEgYWx0ZXJuYXRpdmUgbWVhbnMsIGUuZy4gYnkgdGVsZXBob25lLjxiciBcLz5cbjxoND5EZWZpbml0aW9uczxcL2g0PjxiciBcLz5cblRoZSBkYXRhIHByb3RlY3Rpb24gZGVjbGFyYXRpb24gdXMgaXMgYmFzZWQgb24gdGhlIHRlcm1zIHVzZWQgYnkgdGhlIEV1cm9wZWFuIGxlZ2lzbGF0b3IgZm9yIHRoZSBhZG9wdGlvbiBvZiB0aGUgR2VuZXJhbCBEYXRhIFByb3RlY3Rpb24gUmVndWxhdGlvbiAoR0RQUikuIE91ciBkYXRhIHByb3RlY3Rpb24gZGVjbGFyYXRpb24gc2hvdWxkIGJlIGxlZ2libGUgYW5kIHVuZGVyc3RhbmRhYmxlIGZvciB0aGUgZ2VuZXJhbCBwdWJsaWMsIGFzIHdlbGwgYXMgb3VyIGN1c3RvbWVycyBhbmQgYnVzaW5lc3MgcGFydG5lcnMuIFRvIGVuc3VyZSB0aGlzLCB3ZSB3b3VsZGxpa2UgdG8gZmlyc3QgZXhwbGFpbiB0aGUgdGVybWlub2xvZ3kgdXNlZC48XC9wPlxuPHA+SW4gdGhpcyBkYXRhIHByb3RlY3Rpb24gZGVjbGFyYXRpb24sIHdlIHVzZSwgaW50ZXIgYWxpYSwgdGhlIGZvbGxvd2luZyB0ZXJtczo8YnIgXC8+XG48dWw+PGJyIFwvPlxuIFx0PGxpPjxiciBcLz5cbjxoND5hKVx1MDBhMFx1MDBhMFx1MDBhMCBQZXJzb25hbCBkYXRhPFwvaDQ+PGJyIFwvPlxuUGVyc29uYWwgZGF0YSBtZWFucyBhbnkgaW5mb3JtYXRpb24gcmVsYXRpbmcgdG8gYW4gaWRlbnRpZmllZCBvciBpZGVudGlmaWFibGUgbmF0dXJhbCBwZXJzb24gKFwiZGF0YSBzdWJqZWN0XCIpLiBBbiBpZGVudGlmaWFibGUgbmF0dXJhbCBwZXJzb24gaXMgb25lIHdobyBjYW4gYmUgaWRlbnRpZmllZCwgZGlyZWN0bHkgb3IgaW5kaXJlY3RseSwgaW4gcGFydGljdWxhciBieSByZWZlcmVuY2UgdG8gYW4gaWRlbnRpZmllciBzdWNoIGFzIGEgbmFtZSwgYW4gaWRlbnRpZmljYXRpb24gbnVtYmVyLCBsb2NhdGlvbiBkYXRhLCBhbiBvbmxpbmUgaWRlbnRpZmllciBvciB0byBvbmUgb3IgbW9yZSBmYWN0b3JzIHNwZWNpZmljIHRvIHRoZSBwaHlzaWNhbCwgcGh5c2lvbG9naWNhbCwgZ2VuZXRpYywgbWVudGFsLCBlY29ub21pYywgY3VsdHVyYWwgb3Igc29jaWFsIGlkZW50aXR5IG9mIHRoYXQgbmF0dXJhbCBwZXJzb24uPFwvbGk+PGJyIFwvPlxuIFx0PGxpPjxiciBcLz5cbjxoND5iKSBEYXRhIHN1YmplY3Q8XC9oND48YnIgXC8+XG5EYXRhIHN1YmplY3QgaXMgYW55IGlkZW50aWZpZWQgb3IgaWRlbnRpZmlhYmxlIG5hdHVyYWwgcGVyc29uLCB3aG9zZSBwZXJzb25hbCBkYXRhIGlzIHByb2Nlc3NlZCBieSB0aGUgY29udHJvbGxlciByZXNwb25zaWJsZSBmb3IgdGhlIHByb2Nlc3NpbmcuPFwvbGk+PGJyIFwvPlxuIFx0PGxpPjxiciBcLz5cbjxoND5jKVx1MDBhMFx1MDBhMFx1MDBhMCBQcm9jZXNzaW5nPFwvaDQ+PGJyIFwvPlxuUHJvY2Vzc2luZyBpcyBhbnkgb3BlcmF0aW9uIG9yIHNldCBvZiBvcGVyYXRpb25zIHdoaWNoIGlzIHBlcmZvcm1lZCBvbiBwZXJzb25hbCBkYXRhIG9yIG9uIHNldHMgb2YgcGVyc29uYWwgZGF0YSwgd2hldGhlciBvciBub3QgYnkgYXV0b21hdGVkIG1lYW5zLCBzdWNoIGFzIGNvbGxlY3Rpb24sIHJlY29yZGluZywgb3JnYW5pc2F0aW9uLCBzdHJ1Y3R1cmluZywgc3RvcmFnZSwgYWRhcHRhdGlvbiBvciBhbHRlcmF0aW9uLCByZXRyaWV2YWwsIGNvbnN1bHRhdGlvbiwgdXNlLCBkaXNjbG9zdXJlIGJ5IHRyYW5zbWlzc2lvbiwgZGlzc2VtaW5hdGlvbiBvciBvdGhlcndpc2UgbWFraW5nIGF2YWlsYWJsZSwgYWxpZ25tZW50IG9yIGNvbWJpbmF0aW9uLCByZXN0cmljdGlvbiwgZXJhc3VyZSBvciBkZXN0cnVjdGlvbi48XC9saT48YnIgXC8+XG4gXHQ8bGk+PGJyIFwvPlxuPGg0PmQpXHUwMGEwXHUwMGEwXHUwMGEwIFJlc3RyaWN0aW9uIG9mIHByb2Nlc3Npbmc8XC9oND48YnIgXC8+XG5SZXN0cmljdGlvbiBvZiBwcm9jZXNzaW5nIGlzIHRoZSBtYXJraW5nIG9mIHN0b3JlZCBwZXJzb25hbCBkYXRhIHdpdGggdGhlIGFpbSBvZmxpbWl0aW5nIHRoZWlyIHByb2Nlc3NpbmcgaW4gdGhlIGZ1dHVyZS48XC9saT48YnIgXC8+XG4gXHQ8bGk+PGJyIFwvPlxuPGg0PmUpXHUwMGEwXHUwMGEwXHUwMGEwIFByb2ZpbGluZzxcL2g0PjxiciBcLz5cblByb2ZpbGluZyBtZWFucyBhbnkgZm9ybSBvZiBhdXRvbWF0ZWQgcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIGNvbnNpc3Rpbmcgb2YgdGhlIHVzZSBvZiBwZXJzb25hbCBkYXRhIHRvIGV2YWx1YXRlIGNlcnRhaW4gcGVyc29uYWwgYXNwZWN0cyByZWxhdGluZyB0byBhIG5hdHVyYWwgcGVyc29uLCBpbiBwYXJ0aWN1bGFyIHRvIGFuYWx5c2Ugb3IgcHJlZGljdCBhc3BlY3RzIGNvbmNlcm5pbmcgdGhhdCBuYXR1cmFsIHBlcnNvbidzIHBlcmZvcm1hbmNlIGF0IHdvcmssIGVjb25vbWljIHNpdHVhdGlvbiwgaGVhbHRoLCBwZXJzb25hbCBwcmVmZXJlbmNlcywgaW50ZXJlc3RzLCByZWxpYWJpbGl0eSwgYmVoYXZpb3VyLCBsb2NhdGlvbiBvciBtb3ZlbWVudHMuPFwvbGk+PGJyIFwvPlxuIFx0PGxpPjxiciBcLz5cbjxoND5mKVx1MDBhMFx1MDBhMFx1MDBhMFx1MDBhMCBQc2V1ZG9ueW1pc2F0aW9uPFwvaDQ+PGJyIFwvPlxuUHNldWRvbnltaXNhdGlvbiBpcyB0aGUgcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIGluIHN1Y2ggYSBtYW5uZXIgdGhhdCB0aGUgcGVyc29uYWwgZGF0YSBjYW4gbm8gbG9uZ2VyIGJlIGF0dHJpYnV0ZWQgdG8gYSBzcGVjaWZpYyBkYXRhIHN1YmplY3Qgd2l0aG91dCB0aGUgdXNlIG9mIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24sIHByb3ZpZGVkIHRoYXQgc3VjaCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIGlzIGtlcHQgc2VwYXJhdGVseSBhbmQgaXMgc3ViamVjdCB0byB0ZWNobmljYWwgYW5kIG9yZ2FuaXNhdGlvbmFsIG1lYXN1cmVzIHRvIGVuc3VyZSB0aGF0IHRoZSBwZXJzb25hbCBkYXRhIGFyZSBub3QgYXR0cmlidXRlZCB0byBhbiBpZGVudGlmaWVkIG9yIGlkZW50aWZpYWJsZSBuYXR1cmFsIHBlcnNvbi48XC9saT48YnIgXC8+XG4gXHQ8bGk+PGJyIFwvPlxuPGg0PmcpXHUwMGEwXHUwMGEwXHUwMGEwIENvbnRyb2xsZXIgb3IgY29udHJvbGxlciByZXNwb25zaWJsZSBmb3IgdGhlIHByb2Nlc3Npbmc8XC9oND48YnIgXC8+XG5Db250cm9sbGVyIG9yIGNvbnRyb2xsZXIgcmVzcG9uc2libGUgZm9yIHRoZSBwcm9jZXNzaW5nIGlzIHRoZSBuYXR1cmFsIG9yIGxlZ2FsIHBlcnNvbiwgcHVibGljIGF1dGhvcml0eSwgYWdlbmN5IG9yIG90aGVyIGJvZHkgd2hpY2gsIGFsb25lIG9yIGpvaW50bHkgd2l0aCBvdGhlcnMsIGRldGVybWluZXMgdGhlIHB1cnBvc2VzIGFuZCBtZWFucyBvZiB0aGUgcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhOyB3aGVyZSB0aGUgcHVycG9zZXMgYW5kIG1lYW5zIG9mIHN1Y2ggcHJvY2Vzc2luZyBhcmUgZGV0ZXJtaW5lZCBieSBVbmlvbiBvciBNZW1iZXIgU3RhdGUgbGF3LCB0aGUgY29udHJvbGxlciBvciB0aGUgc3BlY2lmaWMgY3JpdGVyaWEgZm9yIGl0cyBub21pbmF0aW9uIG1heSBiZSBwcm92aWRlZCBmb3IgYnkgVW5pb24gb3IgTWVtYmVyIFN0YXRlIGxhdy48XC9saT48YnIgXC8+XG4gXHQ8bGk+PGJyIFwvPlxuPGg0PmgpXHUwMGEwXHUwMGEwXHUwMGEwIFByb2Nlc3NvcjxcL2g0PjxiciBcLz5cblByb2Nlc3NvciBpcyBhIG5hdHVyYWwgb3IgbGVnYWwgcGVyc29uLCBwdWJsaWMgYXV0aG9yaXR5LCBhZ2VuY3kgb3Igb3RoZXIgYm9keSB3aGljaCBwcm9jZXNzZXMgcGVyc29uYWwgZGF0YSBvbiBiZWhhbGYgb2YgdGhlIGNvbnRyb2xsZXIuPFwvbGk+PGJyIFwvPlxuIFx0PGxpPjxiciBcLz5cbjxoND5pKVx1MDBhMFx1MDBhMFx1MDBhMFx1MDBhMFx1MDBhMCBSZWNpcGllbnQ8XC9oND48YnIgXC8+XG5SZWNpcGllbnQgaXMgYSBuYXR1cmFsIG9yIGxlZ2FsIHBlcnNvbiwgcHVibGljIGF1dGhvcml0eSwgYWdlbmN5IG9yIGFub3RoZXIgYm9keSwgdG8gd2hpY2ggdGhlIHBlcnNvbmFsIGRhdGEgYXJlIGRpc2Nsb3NlZCwgd2hldGhlciBhIHRoaXJkIHBhcnR5IG9yIG5vdC4gSG93ZXZlciwgcHVibGljIGF1dGhvcml0aWVzIHdoaWNoIG1heSByZWNlaXZlIHBlcnNvbmFsIGRhdGEgaW4gdGhlIGZyYW1ld29yayBvZiBhIHBhcnRpY3VsYXIgaW5xdWlyeSBpbiBhY2NvcmRhbmNlIHdpdGggVW5pb24gb3IgTWVtYmVyIFN0YXRlIGxhdyBzaGFsbCBub3QgYmUgcmVnYXJkZWQgYXMgcmVjaXBpZW50czsgdGhlIHByb2Nlc3Npbmcgb2YgdGhvc2UgZGF0YSBieSB0aG9zZSBwdWJsaWMgYXV0aG9yaXRpZXMgc2hhbGwgYmUgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBhcHBsaWNhYmxlIGRhdGEgcHJvdGVjdGlvbiBydWxlcyBhY2NvcmRpbmcgdG8gdGhlIHB1cnBvc2VzIG9mIHRoZSBwcm9jZXNzaW5nLjxcL2xpPjxiciBcLz5cbiBcdDxsaT48YnIgXC8+XG48aDQ+ailcdTAwYTBcdTAwYTBcdTAwYTBcdTAwYTBcdTAwYTAgVGhpcmQgcGFydHk8XC9oND48YnIgXC8+XG5UaGlyZCBwYXJ0eSBpcyBhIG5hdHVyYWwgb3IgbGVnYWwgcGVyc29uLCBwdWJsaWMgYXV0aG9yaXR5LCBhZ2VuY3kgb3IgYm9keSBvdGhlciB0aGFuIHRoZSBkYXRhIHN1YmplY3QsIGNvbnRyb2xsZXIsIHByb2Nlc3NvciBhbmQgcGVyc29ucyB3aG8sIHVuZGVyIHRoZSBkaXJlY3QgYXV0aG9yaXR5IG9mIHRoZSBjb250cm9sbGVyIG9yIHByb2Nlc3NvciwgYXJlIGF1dGhvcmlzZWQgdG8gcHJvY2VzcyBwZXJzb25hbCBkYXRhLjxcL2xpPjxiciBcLz5cbiBcdDxsaT48YnIgXC8+XG48aDQ+aylcdTAwYTBcdTAwYTBcdTAwYTAgQ29uc2VudDxcL2g0PjxiciBcLz5cbkNvbnNlbnQgb2YgdGhlIGRhdGEgc3ViamVjdCBpcyBhbnkgZnJlZWx5IGdpdmVuLCBzcGVjaWZpYywgaW5mb3JtZWQgYW5kIHVuYW1iaWd1b3VzIGluZGljYXRpb24gb2YgdGhlIGRhdGEgc3ViamVjdCdzIHdpc2hlcyBieSB3aGljaCBoZSBvciBzaGUsIGJ5IGEgc3RhdGVtZW50IG9yIGJ5IGEgY2xlYXIgYWZmaXJtYXRpdmUgYWN0aW9uLCBzaWduaWZpZXMgYWdyZWVtZW50IHRvIHRoZSBwcm9jZXNzaW5nIG9mIHBlcnNvbmFsIGRhdGEgcmVsYXRpbmcgdG8gaGltIG9yIGhlci48XC9saT48YnIgXC8+XG48XC91bD48YnIgXC8+XG48aDQ+TmFtZSBhbmQgQWRkcmVzcyBvZiB0aGUgY29udHJvbGxlcjxcL2g0PjxiciBcLz5cbkNvbnRyb2xsZXIgZm9yIHRoZSBwdXJwb3NlcyBvZiB0aGUgR2VuZXJhbCBEYXRhIFByb3RlY3Rpb24gUmVndWxhdGlvbiAoR0RQUiksIG90aGVyIGRhdGEgcHJvdGVjdGlvbiBsYXdzIGFwcGxpY2FibGUgaW4gTWVtYmVyIHN0YXRlcyBvZiB0aGUgRXVyb3BlYW4gVW5pb24gYW5kIG90aGVyIHByb3Zpc2lvbnMgcmVsYXRlZCB0byBkYXRhIHByb3RlY3Rpb24gaXM6PFwvcD5cbjxwPkFkRmlTIHByb2R1Y3RzIEdtYkg8YnIgXC8+XG5UaG9tYXMgU3RpZmZ0PGJyIFwvPlxuQW0gS2VsbGVyaG9seiAxNDxiciBcLz5cbjE3MTY2IFRldGVyb3c8YnIgXC8+XG5EZXV0c2NobGFuZDxcL3A+XG48cD4wMzk5NiBcdTIwMTMgMTUgOTcgXHUyMDEzIDA8XC9wPlxuPHA+RS1NYWlsOlx1MDBhMDxpbWcgY2xhc3M9J2RzZ3ZvYWlvX2VtYWlscG5nJyBzcmM9J2h0dHBzOlwvXC93d3cuYWRmaXMuZGVcL3dwLWNvbnRlbnRcL2RzZ3ZvLWFsbC1pbi1vbmUtd3BcL3NzZXJkYWxpYW1lLnBuZyc+PGJyIFwvPlxuREUyMzYxNDA4NzQ8YnIgXC8+XG48aDQ+Q29va2llcyBcLyBTZXNzaW9uU3RvcmFnZSBcLyBMb2NhbFN0b3JhZ2U8XC9oND48YnIgXC8+XG5UaGUgSW50ZXJuZXQgcGFnZXMgb2YgdXMgdXNlIGNvb2tpZXMsIGxvY2Fsc3RvcmFnZSBhbmQgc2Vzc2lvbnN0b3JhZ2UuIFRoaXMgaXMgdG8gbWFrZSBvdXIgb2ZmZXIgbW9yZSB1c2VyLWZyaWVuZGx5LCBlZmZlY3RpdmUgYW5kIHNlY3VyZS4gTG9jYWwgc3RvcmFnZSBhbmQgc2Vzc2lvbiBzdG9yYWdlIGlzIGEgdGVjaG5vbG9neSB1c2VkIGJ5IHlvdXIgYnJvd3NlciB0byBzdG9yZSBkYXRhIG9uIHlvdXIgY29tcHV0ZXIgb3IgbW9iaWxlIGRldmljZS4gQ29va2llcyBhcmUgdGV4dCBmaWxlcyB0aGF0IGFyZSBzdG9yZWQgaW4gYSBjb21wdXRlciBzeXN0ZW0gdmlhIGFuIEludGVybmV0IGJyb3dzZXIuIFlvdSBjYW4gcHJldmVudCB0aGUgdXNlIG9mIGNvb2tpZXMsIGxvY2Fsc3RvcmFnZSBhbmQgc2Vzc2lvbnN0b3JhZ2UgYnkgc2V0dGluZyB0aGVtIGluIHlvdXIgYnJvd3Nlci48XC9wPlxuPHA+TWFueSBJbnRlcm5ldCBzaXRlcyBhbmQgc2VydmVycyB1c2UgY29va2llcy4gTWFueSBjb29raWVzIGNvbnRhaW4gYSBzby1jYWxsZWQgY29va2llIElELiBBIGNvb2tpZSBJRCBpcyBhIHVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBjb29raWUuIEl0IGNvbnNpc3RzIG9mIGEgY2hhcmFjdGVyIHN0cmluZyB0aHJvdWdoIHdoaWNoIEludGVybmV0IHBhZ2VzIGFuZCBzZXJ2ZXJzIGNhbiBiZSBhc3NpZ25lZCB0byB0aGUgc3BlY2lmaWMgSW50ZXJuZXQgYnJvd3NlciBpbiB3aGljaCB0aGUgY29va2llIHdhcyBzdG9yZWQuIFRoaXMgYWxsb3dzIHZpc2l0ZWQgSW50ZXJuZXQgc2l0ZXMgYW5kIHNlcnZlcnMgdG8gZGlmZmVyZW50aWF0ZSB0aGUgaW5kaXZpZHVhbCBicm93c2VyIG9mIHRoZSBkYXRzIHN1YmplY3QgZnJvbSBvdGhlciBJbnRlcm5ldCBicm93c2VycyB0aGF0IGNvbnRhaW4gb3RoZXIgY29va2llcy4gQSBzcGVjaWZpYyBJbnRlcm5ldCBicm93c2VyIGNhbiBiZSByZWNvZ25pemVkIGFuZCBpZGVudGlmaWVkIHVzaW5nIHRoZSB1bmlxdWUgY29va2llIElELjxcL3A+XG48cD5UaHJvdWdoIHRoZSB1c2Ugb2YgY29va2llcywgd2UgY2FuIHByb3ZpZGUgdGhlIHVzZXJzIG9mIHRoaXMgd2Vic2l0ZSB3aXRoIG1vcmUgdXNlci1mcmllbmRseSBzZXJ2aWNlcyB0aGF0IHdvdWxkIG5vdCBiZSBwb3NzaWJsZSB3aXRob3V0IHRoZSBjb29raWUgc2V0dGluZy48XC9wPlxuPHA+QnkgbWVhbnMgb2YgYSBjb29raWUsIHRoZSBpbmZvcm1hdGlvbiBhbmQgb2ZmZXJzIG9uIG91ciB3ZWJzaXRlIGNhbiBiZSBvcHRpbWl6ZWQgd2l0aCB0aGUgdXNlciBpbiBtaW5kLiBDb29raWVzIGFsbG93IHVzLCBhcyBwcmV2aW91c2x5IG1lbnRpb25lZCwgdG8gcmVjb2duaXplIG91ciB3ZWJzaXRlIHVzZXJzLiBUaGUgcHVycG9zZSBvZiB0aGlzIHJlY29nbml0aW9uIGlzIHRvIG1ha2UgaXQgZWFzaWVyIGZvciB1c2VycyB0byB1dGlsaXplIG91ciB3ZWJzaXRlLiBUaGUgd2Vic2l0ZSB1c2VyIHRoYXQgdXNlcyBjb29raWVzLCBlLmcuIGRvZXMgbm90IGhhdmUgdG8gZW50ZXIgYWNjZXNzIGRhdGEgZWFjaCB0aW1lIHRoZSB3ZWJzaXRlIGlzIGFjY2Vzc2VkLCBiZWNhdXNlIHRoaXMgaXMgdGFrZW4gb3ZlciBieSB0aGUgd2Vic2l0ZSwgYW5kIHRoZSBjb29raWUgaXMgdGh1cyBzdG9yZWQgb24gdGhlIHVzZXIncyBjb21wdXRlciBzeXN0ZW0uIEFub3RoZXIgZXhhbXBsZSBpcyB0aGUgY29va2llIG9mIGEgc2hvcHBpbmcgY2FydCBpbiBhbiBvbmxpbmUgc2hvcC4gVGhlIG9ubGluZSBzdG9yZSByZW1lbWJlcnMgdGhlIGFydGljbGVzIHRoYXQgYSBjdXN0b21lciBoYXMgcGxhY2VkIGluIHRoZSB2aXJ0dWFsIHNob3BwaW5nIGNhcnQgdmlhIGEgY29va2llLjxcL3A+XG48cD5UaGUgZGF0YSBzdWJqZWN0IG1heSwgYXQgYW55IHRpbWUsIHByZXZlbnQgdGhlIHNldHRpbmcgb2YgY29va2llcyB0aHJvdWdoIG91ciB3ZWJzaXRlIGJ5IG1lYW5zIG9mIGEgY29ycmVzcG9uZGluZyBzZXR0aW5nIG9mIHRoZSBJbnRlcm5ldCBicm93c2VyIHVzZWQsIGFuZCBtYXkgdGh1cyBwZXJtYW5lbnRseSBkZW55IHRoZSBzZXR0aW5nIG9mIGNvb2tpZXMuIEZ1cnRoZXJtb3JlLCBhbHJlYWR5IHNldCBjb29raWVzIG1heSBiZSBkZWxldGVkIGF0IGFueSB0aW1lIHZpYSBhbiBJbnRlcm5ldCBicm93c2VyIG9yIG90aGVyIHNvZnR3YXJlIHByb2dyYW1zLiBUaGlzIGlzIHBvc3NpYmxlIGluIGFsbCBwb3B1bGFyIEludGVybmV0IGJyb3dzZXJzLiBJZiB0aGUgZGF0YSBzdWJqZWN0IGRlYWN0aXZhdGVzIHRoZSBzZXR0aW5nIG9mIGNvb2tpZXMgaW4gdGhlIEludGVybmV0IGJyb3dzZXIgdXNlZCwgbm90IGFsbCBmdW5jdGlvbnMgb2Ygb3VyIHdlYnNpdGUgbWF5IGJlIGVudGlyZWx5IHVzYWJsZS48YnIgXC8+XG48aDQ+Q29sbGVjdGlvbiBvZiBnZW5lcmFsIGRhdGEgYW5kIGluZm9ybWF0aW9uPFwvaDQ+PGJyIFwvPlxuVGhlIHdlYnNpdGUgb2YgdXMgY29sbGVjdHMgYSBzZXJpZXMgb2YgZ2VuZXJhbCBkYXRhIGFuZCBpbmZvcm1hdGlvbiB3aGVuIGEgZGF0YSBzdWJqZWN0IG9yIGF1dG9tYXRlZCBzeXN0ZW0gY2FsbHMgdXAgdGhlIHdlYnNpdGUuIFRoaXMgZ2VuZXJhbCBkYXRhIGFuZCBpbmZvcm1hdGlvbiBhcmUgc3RvcmVkIGluIHRoZSBzZXJ2ZXIgbG9nIGZpbGVzLiBDb2xsZWN0ZWQgbWF5IGJlICgxKSB0aGUgYnJvd3NlciB0eXBlcyBhbmQgdmVyc2lvbnMgdXNlZCwgKDIpIHRoZSBvcGVyYXRpbmcgc3lzdGVtIHVzZWQgYnkgdGhlIGFjY2Vzc2luZyBzeXN0ZW0sICgzKSB0aGUgd2Vic2l0ZSBmcm9tIHdoaWNoIGFuIGFjY2Vzc2luZyBzeXN0ZW0gcmVhY2hlcyBvdXIgd2Vic2l0ZSAoc28tY2FsbGVkIHJlZmVycmVycyksICg0KSB0aGUgc3ViLXdlYnNpdGVzLCAoNSkgdGhlIGRhdGUgYW5kIHRpbWUgb2YgYWNjZXNzIHRvIHRoZSBJbnRlcm5ldCBzaXRlLCAoNikgYW4gSW50ZXJuZXQgcHJvdG9jb2wgYWRkcmVzcyAoSVAgYWRkcmVzcyksICg3KSB0aGUgSW50ZXJuZXQgc2VydmljZSBwcm92aWRlciBvZiB0aGUgYWNjZXNzaW5nIHN5c3RlbSwgYW5kICg4KSBhbnkgb3RoZXIgc2ltaWxhciBkYXRhIGFuZCBpbmZvcm1hdGlvbiB0aGF0IG1heSBiZSB1c2VkIGluIHRoZSBldmVudCBvZiBhdHRhY2tzIG9uIG91ciBpbmZvcm1hdGlvbiB0ZWNobm9sb2d5IHN5c3RlbXMuPFwvcD5cbjxwPldoZW4gdXNpbmcgdGhlc2UgZ2VuZXJhbCBkYXRhIGFuZCBpbmZvcm1hdGlvbiwgd2UgZG9lcyBub3QgZHJhdyBhbnkgY29uY2x1c2lvbnMgYWJvdXQgdGhlIGRhdGEgc3ViamVjdC4gUmF0aGVyLCB0aGlzIGluZm9ybWF0aW9uIGlzIG5lZWRlZCB0byAoMSkgZGVsaXZlciB0aGUgY29udGVudCBvZiBvdXIgd2Vic2l0ZSBjb3JyZWN0bHksICgyKSBvcHRpbWl6ZSB0aGUgY29udGVudCBvZiBvdXIgd2Vic2l0ZSBhcyB3ZWxsIGFzIGl0cyBhZHZlcnRpc2VtZW50LCAoMykgZW5zdXJlIHRoZSBsb25nLXRlcm0gdmlhYmlsaXR5IG9mIG91ciBpbmZvcm1hdGlvbiB0ZWNobm9sb2d5IHN5c3RlbXMgYW5kIHdlYnNpdGUgdGVjaG5vbG9neSwgYW5kICg0KSBwcm92aWRlIGxhdyBlbmZvcmNlbWVudCBhdXRob3JpdGllcyB3aXRoIHRoZSBpbmZvcm1hdGlvbiBuZWNlc3NhcnkgZm9yIGNyaW1pbmFsIHByb3NlY3V0aW9uIGluIGNhc2Ugb2YgYSBjeWJlci1hdHRhY2suIFRoZXJlZm9yZSwgd2UgYW5hbHl6ZXMgYW5vbnltb3VzbHkgY29sbGVjdGVkIGRhdGEgYW5kIGluZm9ybWF0aW9uIHN0YXRpc3RpY2FsbHksIHdpdGggdGhlIGFpbSBvZiBpbmNyZWFzaW5nIHRoZSBkYXRhIHByb3RlY3Rpb24gYW5kIGRhdGEgc2VjdXJpdHkgb2Ygb3VyIGVudGVycHJpc2UsIGFuZCB0byBlbnN1cmUgYW4gb3B0aW1hbCBsZXZlbCBvZiBwcm90ZWN0aW9uIGZvciB0aGUgcGVyc29uYWwgZGF0YSB3ZSBwcm9jZXNzLiBUaGUgYW5vbnltb3VzIGRhdGEgb2YgdGhlIHNlcnZlciBsb2cgZmlsZXMgYXJlIHN0b3JlZCBzZXBhcmF0ZWx5IGZyb20gYWxsIHBlcnNvbmFsIGRhdGEgcHJvdmlkZWQgYnkgYSBkYXRhIHN1YmplY3QuPGJyIFwvPlxuPGg0PkNvbnRhY3QgcG9zc2liaWxpdHkgdmlhIHRoZSB3ZWJzaXRlPFwvaDQ+PGJyIFwvPlxuVGhlIHdlYnNpdGUgY29udGFpbnMgaW5mb3JtYXRpb24gdGhhdCBlbmFibGVzIGEgcXVpY2sgZWxlY3Ryb25pYyBjb250YWN0IHRvIG91ciBlbnRlcnByaXNlLCBhcyB3ZWxsIGFzIGRpcmVjdCBjb21tdW5pY2F0aW9uIHdpdGggdXMsIHdoaWNoIGFsc28gaW5jbHVkZXMgYSBnZW5lcmFsIGFkZHJlc3Mgb2YgdGhlIHNvLWNhbGxlZCBlbGVjdHJvbmljIG1haWwgKGUtbWFpbCBhZGRyZXNzKS4gSWYgYSBkYXRhIHN1YmplY3QgY29udGFjdHMgdGhlIGNvbnRyb2xsZXIgYnkgZS1tYWlsIG9yIHZpYSBhIGNvbnRhY3QgZm9ybSwgdGhlIHBlcnNvbmFsIGRhdGEgdHJhbnNtaXR0ZWQgYnkgdGhlIGRhdGEgc3ViamVjdCBhcmUgYXV0b21hdGljYWxseSBzdG9yZWQuIFN1Y2ggcGVyc29uYWwgZGF0YSB0cmFuc21pdHRlZCBvbiBhIHZvbHVudGFyeSBiYXNpcyBieSBhIGRhdGEgc3ViamVjdCB0byB0aGUgZGF0YSBjb250cm9sbGVyIGFyZSBzdG9yZWQgZm9yIHRoZSBwdXJwb3NlIG9mIHByb2Nlc3Npbmcgb3IgY29udGFjdGluZyB0aGUgZGF0YSBzdWJqZWN0LiBUaGVyZSBpcyBubyB0cmFuc2ZlciBvZiB0aGlzIHBlcnNvbmFsIGRhdGEgdG8gdGhpcmQgcGFydGllcy48YnIgXC8+XG48aDQ+Um91dGluZSBlcmFzdXJlIGFuZCBibG9ja2luZyBvZiBwZXJzb25hbCBkYXRhPFwvaDQ+PGJyIFwvPlxuVGhlIGRhdGEgY29udHJvbGxlciBzaGFsbCBwcm9jZXNzIGFuZCBzdG9yZSB0aGUgcGVyc29uYWwgZGF0YSBvZiB0aGUgZGF0YSBzdWJqZWN0IG9ubHkgZm9yIHRoZSBwZXJpb2QgbmVjZXNzYXJ5IHRvIGFjaGlldmUgdGhlIHB1cnBvc2Ugb2Ygc3RvcmFnZSwgb3IgYXMgZmFyIGFzIHRoaXMgaXMgZ3JhbnRlZCBieSB0aGUgRXVyb3BlYW4gbGVnaXNsYXRvciBvciBvdGhlciBsZWdpc2xhdG9ycyBpbiBsYXdzIG9yIHJlZ3VsYXRpb25zIHRvIHdoaWNoIHRoZSBjb250cm9sbGVyIGlzIHN1YmplY3QgdG8uPFwvcD5cbjxwPklmIHRoZSBzdG9yYWdlIHB1cnBvc2UgaXMgbm90IGFwcGxpY2FibGUsIG9yIGlmIGEgc3RvcmFnZSBwZXJpb2QgcHJlc2NyaWJlZCBieSB0aGUgRXVyb3BlYW4gbGVnaXNsYXRvciBvciBhbm90aGVyIGNvbXBldGVudCBsZWdpc2xhdG9yIGV4cGlyZXMsIHRoZSBwZXJzb25hbCBkYXRhIGFyZSByb3V0aW5lbHkgYmxvY2tlZCBvciBlcmFzZWQgaW4gYWNjb3JkYW5jZSB3aXRoIGxlZ2FsIHJlcXVpcmVtZW50cy48YnIgXC8+XG48aDQ+UmlnaHRzIG9mIHRoZSBkYXRhIHN1YmplY3Q8XC9oND48YnIgXC8+XG48dWw+PGJyIFwvPlxuIFx0PGxpPjxiciBcLz5cbjxoND5hKSBSaWdodCBvZiBjb25maXJtYXRpb248XC9oND48YnIgXC8+XG5FYWNoIGRhdGEgc3ViamVjdCBzaGFsbCBoYXZlIHRoZSByaWdodCBncmFudGVkIGJ5IHRoZSBFdXJvcGVhbiBsZWdpc2xhdG9yIHRvIG9idGFpbiBmcm9tIHRoZSBjb250cm9sbGVyIHRoZSBjb25maXJtYXRpb24gYXMgdG8gd2hldGhlciBvciBub3QgcGVyc29uYWwgZGF0YSBjb25jZXJuaW5nIGhpbSBvciBoZXIgYXJlIGJlaW5nIHByb2Nlc3NlZC4gSWYgYSBkYXRhIHN1YmplY3Qgd2lzaGVzIHRvIGF2YWlsIGhpbXNlbGYgb2YgdGhpcyByaWdodCBvZiBjb25maXJtYXRpb24sIGhlIG9yIHNoZSBtYXksIGF0IGFueSB0aW1lLCBjb250YWN0IGFueSBlbXBsb3llZSBvZiB0aGUgY29udHJvbGxlci48XC9saT48YnIgXC8+XG4gXHQ8bGk+PGJyIFwvPlxuPGg0PmIpIFJpZ2h0IG9mIGFjY2VzczxcL2g0PjxiciBcLz5cbkVhY2ggZGF0YSBzdWJqZWN0IHNoYWxsIGhhdmUgdGhlIHJpZ2h0IGdyYW50ZWQgYnkgdGhlIEV1cm9wZWFuIGxlZ2lzbGF0b3IgdG8gb2J0YWluIGZyb20gdGhlIGNvbnRyb2xsZXIgZnJlZSBpbmZvcm1hdGlvbiBhYm91dCBoaXMgb3IgaGVyIHBlcnNvbmFsIGRhdGEgc3RvcmVkIGF0IGFueSB0aW1lIGFuZCBhIGNvcHkgb2YgdGhpcyBpbmZvcm1hdGlvbi4gRnVydGhlcm1vcmUsIHRoZSBFdXJvcGVhbiBkaXJlY3RpdmVzIGFuZCByZWd1bGF0aW9ucyBncmFudCB0aGUgZGF0YSBzdWJqZWN0IGFjY2VzcyB0byB0aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOjxiciBcLz5cbjx1bD48YnIgXC8+XG4gXHQ8bGk+dGhlIHB1cnBvc2VzIG9mIHRoZSBwcm9jZXNzaW5nOzxcL2xpPjxiciBcLz5cbiBcdDxsaT50aGUgY2F0ZWdvcmllcyBvZiBwZXJzb25hbCBkYXRhIGNvbmNlcm5lZDs8XC9saT48YnIgXC8+XG4gXHQ8bGk+dGhlIHJlY2lwaWVudHMgb3IgY2F0ZWdvcmllcyBvZiByZWNpcGllbnRzIHRvIHdob20gdGhlIHBlcnNvbmFsIGRhdGEgaGF2ZSBiZWVuIG9yIHdpbGwgYmUgZGlzY2xvc2VkLCBpbiBwYXJ0aWN1bGFyIHJlY2lwaWVudHMgaW4gdGhpcmQgY291bnRyaWVzIG9yIGludGVybmF0aW9uYWwgb3JnYW5pc2F0aW9uczs8XC9saT48YnIgXC8+XG4gXHQ8bGk+d2hlcmUgcG9zc2libGUsIHRoZSBlbnZpc2FnZWQgcGVyaW9kIGZvciB3aGljaCB0aGUgcGVyc29uYWwgZGF0YSB3aWxsIGJlIHN0b3JlZCwgb3IsIGlmIG5vdCBwb3NzaWJsZSwgdGhlIGNyaXRlcmlhIHVzZWQgdG8gZGV0ZXJtaW5lIHRoYXQgcGVyaW9kOzxcL2xpPjxiciBcLz5cbiBcdDxsaT50aGUgZXhpc3RlbmNlIG9mIHRoZSByaWdodCB0byByZXF1ZXN0IGZyb20gdGhlIGNvbnRyb2xsZXIgcmVjdGlmaWNhdGlvbiBvciBlcmFzdXJlIG9mIHBlcnNvbmFsIGRhdGEsIG9yIHJlc3RyaWN0aW9uIG9mIHByb2Nlc3Npbmcgb2YgcGVyc29uYWwgZGF0YSBjb25jZXJuaW5nIHRoZSBkYXRhIHN1YmplY3QsIG9yIHRvIG9iamVjdCB0byBzdWNoIHByb2Nlc3Npbmc7PFwvbGk+PGJyIFwvPlxuIFx0PGxpPnRoZSBleGlzdGVuY2Ugb2YgdGhlIHJpZ2h0IHRvIGxvZGdlIGEgY29tcGxhaW50IHdpdGggYSBzdXBlcnZpc29yeSBhdXRob3JpdHk7PFwvbGk+PGJyIFwvPlxuIFx0PGxpPndoZXJlIHRoZSBwZXJzb25hbCBkYXRhIGFyZSBub3QgY29sbGVjdGVkIGZyb20gdGhlIGRhdGEgc3ViamVjdCwgYW55IGF2YWlsYWJsZSBpbmZvcm1hdGlvbiBhcyB0byB0aGVpciBzb3VyY2U7PFwvbGk+PGJyIFwvPlxuIFx0PGxpPnRoZSBleGlzdGVuY2Ugb2YgYXV0b21hdGVkIGRlY2lzaW9uLW1ha2luZywgaW5jbHVkaW5nIHByb2ZpbGluZywgcmVmZXJyZWQgdG8gaW4gQXJ0aWNsZSAyMigxKSBhbmQgKDQpIG9mIHRoZSBHRFBSIGFuZCwgYXQgbGVhc3QgaW4gdGhvc2UgY2FzZXMsIG1lYW5pbmdmdWwgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxvZ2ljIGludm9sdmVkLCBhcyB3ZWxsIGFzIHRoZSBzaWduaWZpY2FuY2UgYW5kIGVudmlzYWdlZCBjb25zZXF1ZW5jZXMgb2Ygc3VjaCBwcm9jZXNzaW5nIGZvciB0aGUgZGF0YSBzdWJqZWN0LjxcL2xpPjxiciBcLz5cbjxcL3VsPjxiciBcLz5cbkZ1cnRoZXJtb3JlLCB0aGUgZGF0YSBzdWJqZWN0IHNoYWxsIGhhdmUgYSByaWdodCB0byBvYnRhaW4gaW5mb3JtYXRpb24gYXMgdG8gd2hldGhlciBwZXJzb25hbCBkYXRhIGFyZSB0cmFuc2ZlcnJlZCB0byBhIHRoaXJkIGNvdW50cnkgb3IgdG8gYW4gaW50ZXJuYXRpb25hbCBvcmdhbmlzYXRpb24uIFdoZXJlIHRoaXMgaXMgdGhlIGNhc2UsIHRoZSBkYXRhIHN1YmplY3Qgc2hhbGwgaGF2ZSB0aGUgcmlnaHQgdG8gYmUgaW5mb3JtZWQgb2YgdGhlIGFwcHJvcHJpYXRlIHNhZmVndWFyZHMgcmVsYXRpbmcgdG8gdGhlIHRyYW5zZmVyLjxcL3A+XG48cD5JZiBhIGRhdGEgc3ViamVjdCB3aXNoZXMgdG8gYXZhaWwgaGltc2VsZiBvZiB0aGlzIHJpZ2h0IG9mIGFjY2VzcywgaGUgb3Igc2hlIG1heSwgYXQgYW55IHRpbWUsIGNvbnRhY3QgYW55IGVtcGxveWVlIG9mIHRoZSBjb250cm9sbGVyLjxcL2xpPjxiciBcLz5cbiBcdDxsaT48YnIgXC8+XG48aDQ+YykgUmlnaHQgdG8gcmVjdGlmaWNhdGlvbjxcL2g0PjxiciBcLz5cbkVhY2ggZGF0YSBzdWJqZWN0IHNoYWxsIGhhdmUgdGhlIHJpZ2h0IGdyYW50ZWQgYnkgdGhlIEV1cm9wZWFuIGxlZ2lzbGF0b3IgdG8gb2J0YWluIGZyb20gdGhlIGNvbnRyb2xsZXIgd2l0aG91dCB1bmR1ZSBkZWxheSB0aGUgcmVjdGlmaWNhdGlvbiBvZiBpbmFjY3VyYXRlIHBlcnNvbmFsIGRhdGEgY29uY2VybmluZyBoaW0gb3IgaGVyLiBUYWtpbmcgaW50byBhY2NvdW50IHRoZSBwdXJwb3NlcyBvZiB0aGUgcHJvY2Vzc2luZywgdGhlIGRhdGEgc3ViamVjdCBzaGFsbCBoYXZlIHRoZSByaWdodCB0byBoYXZlIGluY29tcGxldGUgcGVyc29uYWwgZGF0YSBjb21wbGV0ZWQsIGluY2x1ZGluZyBieSBtZWFucyBvZiBwcm92aWRpbmcgYSBzdXBwbGVtZW50YXJ5IHN0YXRlbWVudC48XC9wPlxuPHA+SWYgYSBkYXRhIHN1YmplY3Qgd2lzaGVzIHRvIGV4ZXJjaXNlIHRoaXMgcmlnaHQgdG8gcmVjdGlmaWNhdGlvbiwgaGUgb3Igc2hlIG1heSwgYXQgYW55IHRpbWUsIGNvbnRhY3QgYW55IGVtcGxveWVlIG9mIHRoZSBjb250cm9sbGVyLjxcL2xpPjxiciBcLz5cbiBcdDxsaT48YnIgXC8+XG48aDQ+ZCkgUmlnaHQgdG8gZXJhc3VyZSAoUmlnaHQgdG8gYmUgZm9yZ290dGVuKTxcL2g0PjxiciBcLz5cbkVhY2ggZGF0YSBzdWJqZWN0IHNoYWxsIGhhdmUgdGhlIHJpZ2h0IGdyYW50ZWQgYnkgdGhlIEV1cm9wZWFuIGxlZ2lzbGF0b3IgdG8gb2J0YWluIGZyb20gdGhlIGNvbnRyb2xsZXIgdGhlIGVyYXN1cmUgb2YgcGVyc29uYWwgZGF0YSBjb25jZXJuaW5nIGhpbSBvciBoZXIgd2l0aG91dCB1bmR1ZSBkZWxheSwgYW5kIHRoZSBjb250cm9sbGVyIHNoYWxsIGhhdmUgdGhlIG9ibGlnYXRpb24gdG8gZXJhc2UgcGVyc29uYWwgZGF0YSB3aXRob3V0IHVuZHVlIGRlbGF5IHdoZXJlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGdyb3VuZHMgYXBwbGllcywgYXMgbG9uZyBhcyB0aGUgcHJvY2Vzc2luZyBpcyBub3QgbmVjZXNzYXJ5OjxiciBcLz5cbjx1bD48YnIgXC8+XG4gXHQ8bGk+VGhlIHBlcnNvbmFsIGRhdGEgYXJlIG5vIGxvbmdlciBuZWNlc3NhcnkgaW4gcmVsYXRpb24gdG8gdGhlIHB1cnBvc2VzIGZvciB3aGljaCB0aGV5IHdlcmUgY29sbGVjdGVkIG9yIG90aGVyd2lzZSBwcm9jZXNzZWQuPFwvbGk+PGJyIFwvPlxuIFx0PGxpPlRoZSBkYXRhIHN1YmplY3Qgd2l0aGRyYXdzIGNvbnNlbnQgdG8gd2hpY2ggdGhlIHByb2Nlc3NpbmcgaXMgYmFzZWQgYWNjb3JkaW5nIHRvIHBvaW50IChhKSBvZiBBcnRpY2xlIDYoMSkgb2YgdGhlIEdEUFIsIG9yIHBvaW50IChhKSBvZiBBcnRpY2xlIDkoMikgb2YgdGhlIEdEUFIsIGFuZCB3aGVyZSB0aGVyZSBpcyBubyBvdGhlciBsZWdhbCBncm91bmQgZm9yIHRoZSBwcm9jZXNzaW5nLjxcL2xpPjxiciBcLz5cbiBcdDxsaT5UaGUgZGF0YSBzdWJqZWN0IG9iamVjdHMgdG8gdGhlIHByb2Nlc3NpbmcgcHVyc3VhbnQgdG8gQXJ0aWNsZSAyMSgxKSBvZiB0aGUgR0RQUiBhbmQgdGhlcmUgYXJlIG5vIG92ZXJyaWRpbmcgbGVnaXRpbWF0ZSBncm91bmRzIGZvciB0aGUgcHJvY2Vzc2luZywgb3IgdGhlIGRhdGEgc3ViamVjdCBvYmplY3RzIHRvIHRoZSBwcm9jZXNzaW5nIHB1cnN1YW50IHRvIEFydGljbGUgMjEoMikgb2YgdGhlIEdEUFIuPFwvbGk+PGJyIFwvPlxuIFx0PGxpPlRoZSBwZXJzb25hbCBkYXRhIGhhdmUgYmVlbiB1bmxhd2Z1bGx5IHByb2Nlc3NlZC48XC9saT48YnIgXC8+XG4gXHQ8bGk+VGhlIHBlcnNvbmFsIGRhdGEgbXVzdCBiZSBlcmFzZWQgZm9yIGNvbXBsaWFuY2Ugd2l0aCBhIGxlZ2FsIG9ibGlnYXRpb24gaW4gVW5pb24gb3IgTWVtYmVyIFN0YXRlIGxhdyB0byB3aGljaCB0aGUgY29udHJvbGxlciBpcyBzdWJqZWN0LjxcL2xpPjxiciBcLz5cbiBcdDxsaT5UaGUgcGVyc29uYWwgZGF0YSBoYXZlIGJlZW4gY29sbGVjdGVkIGluIHJlbGF0aW9uIHRvIHRoZSBvZmZlciBvZiBpbmZvcm1hdGlvbiBzb2NpZXR5IHNlcnZpY2VzIHJlZmVycmVkIHRvIGluIEFydGljbGUgOCgxKSBvZiB0aGUgR0RQUi48XC9saT48YnIgXC8+XG48XC91bD48YnIgXC8+XG5JZiBvbmUgb2YgdGhlIGFmb3JlbWVudGlvbmVkIHJlYXNvbnMgYXBwbGllcywgYW5kIGEgZGF0YSBzdWJqZWN0IHdpc2hlcyB0byByZXF1ZXN0IHRoZSBlcmFzdXJlIG9mIHBlcnNvbmFsIGRhdGEgc3RvcmVkIGJ5IHVzLCBoZSBvciBzaGUgbWF5LCBhdCBhbnkgdGltZSwgY29udGFjdCBhbnkgZW1wbG95ZWUgb2YgdGhlIGNvbnRyb2xsZXIuIEFuIGVtcGxveWVlIHVzIHNoYWxsIHByb21wdGx5IGVuc3VyZSB0aGF0IHRoZSBlcmFzdXJlIHJlcXVlc3QgaXMgY29tcGxpZWQgd2l0aCBpbW1lZGlhdGVseS48XC9wPlxuPHA+V2hlcmUgdGhlIGNvbnRyb2xsZXIgaGFzIG1hZGUgcGVyc29uYWwgZGF0YSBwdWJsaWMgYW5kIGlzIG9ibGlnZWQgcHVyc3VhbnQgdG8gQXJ0aWNsZSAxNygxKSB0byBlcmFzZSB0aGUgcGVyc29uYWwgZGF0YSwgdGhlIGNvbnRyb2xsZXIsIHRha2luZyBhY2NvdW50IG9mIGF2YWlsYWJsZSB0ZWNobm9sb2d5IGFuZCB0aGUgY29zdCBvZiBpbXBsZW1lbnRhdGlvbiwgc2hhbGwgdGFrZSByZWFzb25hYmxlIHN0ZXBzLCBpbmNsdWRpbmcgdGVjaG5pY2FsIG1lYXN1cmVzLCB0byBpbmZvcm0gb3RoZXIgY29udHJvbGxlcnMgcHJvY2Vzc2luZyB0aGUgcGVyc29uYWwgZGF0YSB0aGF0IHRoZSBkYXRhIHN1YmplY3QgaGFzIHJlcXVlc3RlZCBlcmFzdXJlIGJ5IHN1Y2ggY29udHJvbGxlcnMgb2YgYW55bGlua3MgdG8sIG9yIGNvcHkgb3IgcmVwbGljYXRpb24gb2YsIHRob3NlIHBlcnNvbmFsIGRhdGEsIGFzIGZhciBhcyBwcm9jZXNzaW5nIGlzIG5vdCByZXF1aXJlZC4gQW4gZW1wbG95ZWVzIG9mIHVzIHdpbGwgYXJyYW5nZSB0aGUgbmVjZXNzYXJ5IG1lYXN1cmVzIGluIGluZGl2aWR1YWwgY2FzZXMuPFwvbGk+PGJyIFwvPlxuIFx0PGxpPjxiciBcLz5cbjxoND5lKSBSaWdodCBvZiByZXN0cmljdGlvbiBvZiBwcm9jZXNzaW5nPFwvaDQ+PGJyIFwvPlxuRWFjaCBkYXRhIHN1YmplY3Qgc2hhbGwgaGF2ZSB0aGUgcmlnaHQgZ3JhbnRlZCBieSB0aGUgRXVyb3BlYW4gbGVnaXNsYXRvciB0byBvYnRhaW4gZnJvbSB0aGUgY29udHJvbGxlciByZXN0cmljdGlvbiBvZiBwcm9jZXNzaW5nIHdoZXJlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGFwcGxpZXM6PGJyIFwvPlxuPHVsPjxiciBcLz5cbiBcdDxsaT5UaGUgYWNjdXJhY3kgb2YgdGhlIHBlcnNvbmFsIGRhdGEgaXMgY29udGVzdGVkIGJ5IHRoZSBkYXRhIHN1YmplY3QsIGZvciBhIHBlcmlvZCBlbmFibGluZyB0aGUgY29udHJvbGxlciB0byB2ZXJpZnkgdGhlIGFjY3VyYWN5IG9mIHRoZSBwZXJzb25hbCBkYXRhLjxcL2xpPjxiciBcLz5cbiBcdDxsaT5UaGUgcHJvY2Vzc2luZyBpcyB1bmxhd2Z1bCBhbmQgdGhlIGRhdGEgc3ViamVjdCBvcHBvc2VzIHRoZSBlcmFzdXJlIG9mIHRoZSBwZXJzb25hbCBkYXRhIGFuZCByZXF1ZXN0cyBpbnN0ZWFkIHRoZSByZXN0cmljdGlvbiBvZiB0aGVpciB1c2UgaW5zdGVhZC48XC9saT48YnIgXC8+XG4gXHQ8bGk+VGhlIGNvbnRyb2xsZXIgbm8gbG9uZ2VyIG5lZWRzIHRoZSBwZXJzb25hbCBkYXRhIGZvciB0aGUgcHVycG9zZXMgb2YgdGhlIHByb2Nlc3NpbmcsIGJ1dCB0aGV5IGFyZSByZXF1aXJlZCBieSB0aGUgZGF0YSBzdWJqZWN0IGZvciB0aGUgZXN0YWJsaXNobWVudCwgZXhlcmNpc2Ugb3IgZGVmZW5jZSBvZiBsZWdhbCBjbGFpbXMuPFwvbGk+PGJyIFwvPlxuIFx0PGxpPlRoZSBkYXRhIHN1YmplY3QgaGFzIG9iamVjdGVkIHRvIHByb2Nlc3NpbmcgcHVyc3VhbnQgdG8gQXJ0aWNsZSAyMSgxKSBvZiB0aGUgR0RQUiBwZW5kaW5nIHRoZSB2ZXJpZmljYXRpb24gd2hldGhlciB0aGUgbGVnaXRpbWF0ZSBncm91bmRzIG9mIHRoZSBjb250cm9sbGVyIG92ZXJyaWRlIHRob3NlIG9mIHRoZSBkYXRhIHN1YmplY3QuPFwvbGk+PGJyIFwvPlxuPFwvdWw+PGJyIFwvPlxuSWYgb25lIG9mIHRoZSBhZm9yZW1lbnRpb25lZCBjb25kaXRpb25zIGlzIG1ldCwgYW5kIGEgZGF0YSBzdWJqZWN0IHdpc2hlcyB0byByZXF1ZXN0IHRoZSByZXN0cmljdGlvbiBvZiB0aGUgcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIHN0b3JlZCBieSB1cywgaGUgb3Igc2hlIG1heSBhdCBhbnkgdGltZSBjb250YWN0IGFueSBlbXBsb3llZSBvZiB0aGUgY29udHJvbGxlci4gVGhlIGVtcGxveWVlIG9mIHVzIHdpbGwgYXJyYW5nZSB0aGUgcmVzdHJpY3Rpb24gb2YgdGhlIHByb2Nlc3NpbmcuPFwvbGk+PGJyIFwvPlxuIFx0PGxpPjxiciBcLz5cbjxoND5mKSBSaWdodCB0byBkYXRhIHBvcnRhYmlsaXR5PFwvaDQ+PGJyIFwvPlxuRWFjaCBkYXRhIHN1YmplY3Qgc2hhbGwgaGF2ZSB0aGUgcmlnaHQgZ3JhbnRlZCBieSB0aGUgRXVyb3BlYW4gbGVnaXNsYXRvciwgdG8gcmVjZWl2ZSB0aGUgcGVyc29uYWwgZGF0YSBjb25jZXJuaW5nIGhpbSBvciBoZXIsIHdoaWNoIHdhcyBwcm92aWRlZCB0byBhIGNvbnRyb2xsZXIsIGluIGEgc3RydWN0dXJlZCwgY29tbW9ubHkgdXNlZCBhbmQgbWFjaGluZS1yZWFkYWJsZSBmb3JtYXQuIEhlIG9yIHNoZSBzaGFsbCBoYXZlIHRoZSByaWdodCB0byB0cmFuc21pdCB0aG9zZSBkYXRhIHRvIGFub3RoZXIgY29udHJvbGxlciB3aXRob3V0IGhpbmRyYW5jZSBmcm9tIHRoZSBjb250cm9sbGVyIHRvIHdoaWNoIHRoZSBwZXJzb25hbCBkYXRhIGhhdmUgYmVlbiBwcm92aWRlZCwgYXMgbG9uZyBhcyB0aGUgcHJvY2Vzc2luZyBpcyBiYXNlZCBvbiBjb25zZW50IHB1cnN1YW50IHRvIHBvaW50IChhKSBvZiBBcnRpY2xlIDYoMSkgb2YgdGhlIEdEUFIgb3IgcG9pbnQgKGEpIG9mIEFydGljbGUgOSgyKSBvZiB0aGUgR0RQUiwgb3Igb24gYSBjb250cmFjdCBwdXJzdWFudCB0byBwb2ludCAoYikgb2YgQXJ0aWNsZSA2KDEpIG9mIHRoZSBHRFBSLCBhbmQgdGhlIHByb2Nlc3NpbmcgaXMgY2FycmllZCBvdXQgYnkgYXV0b21hdGVkIG1lYW5zLCBhcyBsb25nIGFzIHRoZSBwcm9jZXNzaW5nIGlzIG5vdCBuZWNlc3NhcnkgZm9yIHRoZSBwZXJmb3JtYW5jZSBvZiBhIHRhc2sgY2FycmllZCBvdXQgaW4gdGhlIHB1YmxpYyBpbnRlcmVzdCBvciBpbiB0aGUgZXhlcmNpc2Ugb2Ygb2ZmaWNpYWwgYXV0aG9yaXR5IHZlc3RlZCBpbiB0aGUgY29udHJvbGxlci48XC9wPlxuPHA+RnVydGhlcm1vcmUsIGluIGV4ZXJjaXNpbmcgaGlzIG9yIGhlciByaWdodCB0byBkYXRhIHBvcnRhYmlsaXR5IHB1cnN1YW50IHRvIEFydGljbGUgMjAoMSkgb2YgdGhlIEdEUFIsIHRoZSBkYXRhIHN1YmplY3Qgc2hhbGwgaGF2ZSB0aGUgcmlnaHQgdG8gaGF2ZSBwZXJzb25hbCBkYXRhIHRyYW5zbWl0dGVkIGRpcmVjdGx5IGZyb20gb25lIGNvbnRyb2xsZXIgdG8gYW5vdGhlciwgd2hlcmUgdGVjaG5pY2FsbHkgZmVhc2libGUgYW5kIHdoZW4gZG9pbmcgc28gZG9lcyBub3QgYWR2ZXJzZWx5IGFmZmVjdCB0aGUgcmlnaHRzIGFuZCBmcmVlZG9tcyBvZiBvdGhlcnMuPFwvcD5cbjxwPkluIG9yZGVyIHRvIGFzc2VydCB0aGUgcmlnaHQgdG8gZGF0YSBwb3J0YWJpbGl0eSwgdGhlIGRhdGEgc3ViamVjdCBtYXkgYXQgYW55IHRpbWUgY29udGFjdCBhbnkgZW1wbG95ZWUgb2YgdXMuPFwvbGk+PGJyIFwvPlxuIFx0PGxpPjxiciBcLz5cbjxoND5nKSBSaWdodCB0byBvYmplY3Q8XC9oND48YnIgXC8+XG5FYWNoIGRhdGEgc3ViamVjdCBzaGFsbCBoYXZlIHRoZSByaWdodCBncmFudGVkIGJ5IHRoZSBFdXJvcGVhbiBsZWdpc2xhdG9yIHRvIG9iamVjdCwgb24gZ3JvdW5kcyByZWxhdGluZyB0byBoaXMgb3IgaGVyIHBhcnRpY3VsYXIgc2l0dWF0aW9uLCBhdCBhbnkgdGltZSwgdG8gcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIGNvbmNlcm5pbmcgaGltIG9yIGhlciwgd2hpY2ggaXMgYmFzZWQgb24gcG9pbnQgKGUpIG9yIChmKSBvZiBBcnRpY2xlIDYoMSkgb2YgdGhlIEdEUFIuIFRoaXMgYWxzbyBhcHBsaWVzIHRvIHByb2ZpbGluZyBiYXNlZCBvbiB0aGVzZSBwcm92aXNpb25zLjxcL3A+XG48cD5XZSBzaGFsbCBubyBsb25nZXIgcHJvY2VzcyB0aGUgcGVyc29uYWwgZGF0YSBpbiB0aGUgZXZlbnQgb2YgdGhlIG9iamVjdGlvbiwgdW5sZXNzIHdlIGNhbiBkZW1vbnN0cmF0ZSBjb21wZWxsaW5nIGxlZ2l0aW1hdGUgZ3JvdW5kcyBmb3IgdGhlIHByb2Nlc3Npbmcgd2hpY2ggb3ZlcnJpZGUgdGhlIGludGVyZXN0cywgcmlnaHRzIGFuZCBmcmVlZG9tcyBvZiB0aGUgZGF0YSBzdWJqZWN0LCBvciBmb3IgdGhlIGVzdGFibGlzaG1lbnQsIGV4ZXJjaXNlIG9yIGRlZmVuY2Ugb2YgbGVnYWwgY2xhaW1zLjxcL3A+XG48cD5JZiB3ZSBwcm9jZXNzZXMgcGVyc29uYWwgZGF0YSBmb3IgZGlyZWN0IG1hcmtldGluZyBwdXJwb3NlcywgdGhlIGRhdGEgc3ViamVjdCBzaGFsbCBoYXZlIHRoZSByaWdodCB0byBvYmplY3QgYXQgYW55IHRpbWUgdG8gcHJvY2Vzc2luZyBvZiBwZXJzb25hbCBkYXRhIGNvbmNlcm5pbmcgaGltIG9yIGhlciBmb3Igc3VjaCBtYXJrZXRpbmcuIFRoaXMgYXBwbGllcyB0byBwcm9maWxpbmcgdG8gdGhlIGV4dGVudCB0aGF0IGl0IGlzIHJlbGF0ZWQgdG8gc3VjaCBkaXJlY3QgbWFya2V0aW5nLiBJZiB0aGUgZGF0YSBzdWJqZWN0IG9iamVjdHMgdG8gdXMgdG8gdGhlIHByb2Nlc3NpbmcgZm9yIGRpcmVjdCBtYXJrZXRpbmcgcHVycG9zZXMsIHdlIHdpbGwgbm8gbG9uZ2VyIHByb2Nlc3MgdGhlIHBlcnNvbmFsIGRhdGEgZm9yIHRoZXNlIHB1cnBvc2VzLjxcL3A+XG48cD5JbiBhZGRpdGlvbiwgdGhlIGRhdGEgc3ViamVjdCBoYXMgdGhlIHJpZ2h0LCBvbiBncm91bmRzIHJlbGF0aW5nIHRvIGhpcyBvciBoZXIgcGFydGljdWxhciBzaXR1YXRpb24sIHRvIG9iamVjdCB0byBwcm9jZXNzaW5nIG9mIHBlcnNvbmFsIGRhdGEgY29uY2VybmluZyBoaW0gb3IgaGVyIGJ5IHVzIGZvciBzY2llbnRpZmljIG9yIGhpc3RvcmljYWwgcmVzZWFyY2ggcHVycG9zZXMsIG9yIGZvciBzdGF0aXN0aWNhbCBwdXJwb3NlcyBwdXJzdWFudCB0byBBcnRpY2xlIDg5KDEpIG9mIHRoZSBHRFBSLCB1bmxlc3MgdGhlIHByb2Nlc3NpbmcgaXMgbmVjZXNzYXJ5IGZvciB0aGUgcGVyZm9ybWFuY2Ugb2YgYSB0YXNrIGNhcnJpZWQgb3V0IGZvciByZWFzb25zIG9mIHB1YmxpYyBpbnRlcmVzdC48XC9wPlxuPHA+SW4gb3JkZXIgdG8gZXhlcmNpc2UgdGhlIHJpZ2h0IHRvIG9iamVjdCwgdGhlIGRhdGEgc3ViamVjdCBtYXkgY29udGFjdCBhbnkgZW1wbG95ZWUgb2YgdXMuIEluIGFkZGl0aW9uLCB0aGUgZGF0YSBzdWJqZWN0IGlzIGZyZWUgaW4gdGhlIGNvbnRleHQgb2YgdGhlIHVzZSBvZiBpbmZvcm1hdGlvbiBzb2NpZXR5IHNlcnZpY2VzLCBhbmQgbm90d2l0aHN0YW5kaW5nIERpcmVjdGl2ZSAyMDAyXC81OFwvRUMsIHRvIHVzZSBoaXMgb3IgaGVyIHJpZ2h0IHRvIG9iamVjdCBieSBhdXRvbWF0ZWQgbWVhbnMgdXNpbmcgdGVjaG5pY2FsIHNwZWNpZmljYXRpb25zLjxcL2xpPjxiciBcLz5cbiBcdDxsaT48YnIgXC8+XG48aDQ+aCkgQXV0b21hdGVkIGluZGl2aWR1YWwgZGVjaXNpb24tbWFraW5nLCBpbmNsdWRpbmcgcHJvZmlsaW5nPFwvaDQ+PGJyIFwvPlxuRWFjaCBkYXRhIHN1YmplY3Qgc2hhbGwgaGF2ZSB0aGUgcmlnaHQgZ3JhbnRlZCBieSB0aGUgRXVyb3BlYW4gbGVnaXNsYXRvciBub3QgdG8gYmUgc3ViamVjdCB0byBhIGRlY2lzaW9uIGJhc2VkIHNvbGVseSBvbiBhdXRvbWF0ZWQgcHJvY2Vzc2luZywgaW5jbHVkaW5nIHByb2ZpbGluZywgd2hpY2ggcHJvZHVjZXMgbGVnYWwgZWZmZWN0cyBjb25jZXJuaW5nIGhpbSBvciBoZXIsIG9yIHNpbWlsYXJseSBzaWduaWZpY2FudGx5IGFmZmVjdHMgaGltIG9yIGhlciwgYXMgbG9uZyBhcyB0aGUgZGVjaXNpb24gKDEpIGlzIG5vdCBpcyBuZWNlc3NhcnkgZm9yIGVudGVyaW5nIGludG8sIG9yIHRoZSBwZXJmb3JtYW5jZSBvZiwgYSBjb250cmFjdCBiZXR3ZWVuIHRoZSBkYXRhIHN1YmplY3QgYW5kIGEgZGF0YSBjb250cm9sbGVyLCBvciAoMikgaXMgbm90IGF1dGhvcmlzZWQgYnkgVW5pb24gb3IgTWVtYmVyIFN0YXRlIGxhdyB0byB3aGljaCB0aGUgY29udHJvbGxlciBpcyBzdWJqZWN0IGFuZCB3aGljaCBhbHNvIGxheXMgZG93biBzdWl0YWJsZSBtZWFzdXJlcyB0byBzYWZlZ3VhcmQgdGhlIGRhdGEgc3ViamVjdCdzIHJpZ2h0cyBhbmQgZnJlZWRvbXMgYW5kIGxlZ2l0aW1hdGUgaW50ZXJlc3RzLCBvciAoMykgaXMgbm90IGJhc2VkIG9uIHRoZSBkYXRhIHN1YmplY3QncyBleHBsaWNpdCBjb25zZW50LjxcL3A+XG48cD5JZiB0aGUgZGVjaXNpb24gKDEpIGlzIG5lY2Vzc2FyeSBmb3IgZW50ZXJpbmcgaW50bywgb3IgdGhlIHBlcmZvcm1hbmNlIG9mLCBhIGNvbnRyYWN0IGJldHdlZW4gdGhlIGRhdGEgc3ViamVjdCBhbmQgYSBkYXRhIGNvbnRyb2xsZXIsIG9yICgyKSBpdCBpcyBiYXNlZCBvbiB0aGUgZGF0YSBzdWJqZWN0J3MgZXhwbGljaXQgY29uc2VudCwgd2Ugc2hhbGwgaW1wbGVtZW50IHN1aXRhYmxlIG1lYXN1cmVzIHRvIHNhZmVndWFyZCB0aGUgZGF0YSBzdWJqZWN0J3MgcmlnaHRzIGFuZCBmcmVlZG9tcyBhbmQgbGVnaXRpbWF0ZSBpbnRlcmVzdHMsIGF0IGxlYXN0IHRoZSByaWdodCB0byBvYnRhaW4gaHVtYW4gaW50ZXJ2ZW50aW9uIG9uIHRoZSBwYXJ0IG9mIHRoZSBjb250cm9sbGVyLCB0byBleHByZXNzIGhpcyBvciBoZXIgcG9pbnQgb2YgdmlldyBhbmQgY29udGVzdCB0aGUgZGVjaXNpb24uPFwvcD5cbjxwPklmIHRoZSBkYXRhIHN1YmplY3Qgd2lzaGVzIHRvIGV4ZXJjaXNlIHRoZSByaWdodHMgY29uY2VybmluZyBhdXRvbWF0ZWQgaW5kaXZpZHVhbCBkZWNpc2lvbi1tYWtpbmcsIGhlIG9yIHNoZSBtYXksIGF0IGFueSB0aW1lLCBjb250YWN0IGFueSBlbXBsb3llZSBvZiB1cy48XC9saT48YnIgXC8+XG4gXHQ8bGk+PGJyIFwvPlxuPGg0PmkpIFJpZ2h0IHRvIHdpdGhkcmF3IGRhdGEgcHJvdGVjdGlvbiBjb25zZW50PFwvaDQ+PGJyIFwvPlxuRWFjaCBkYXRhIHN1YmplY3Qgc2hhbGwgaGF2ZSB0aGUgcmlnaHQgZ3JhbnRlZCBieSB0aGUgRXVyb3BlYW4gbGVnaXNsYXRvciB0byB3aXRoZHJhdyBoaXMgb3IgaGVyIGNvbnNlbnQgdG8gcHJvY2Vzc2luZyBvZiBoaXMgb3IgaGVyIHBlcnNvbmFsIGRhdGEgYXQgYW55IHRpbWUuPFwvcD5cbjxwPklmIHRoZSBkYXRhIHN1YmplY3Qgd2lzaGVzIHRvIGV4ZXJjaXNlIHRoZSByaWdodCB0byB3aXRoZHJhdyB0aGUgY29uc2VudCwgaGUgb3Igc2hlIG1heSwgYXQgYW55IHRpbWUsIGNvbnRhY3QgYW55IGVtcGxveWVlIG9mIHVzLjxcL2xpPjxiciBcLz5cbjxcL3VsPjxiciBcLz5cbjxoND5MZWdhbCBiYXNpcyBmb3IgdGhlIHByb2Nlc3Npbmc8XC9oND48YnIgXC8+XG5BcnQuIDYoMSlsaXQuIGEgR0RQUiBzZXJ2ZXMgYXMgdGhlIGxlZ2FsIGJhc2lzIGZvciBwcm9jZXNzaW5nIG9wZXJhdGlvbnMgZm9yIHdoaWNoIHdlIG9idGFpbiBjb25zZW50IGZvciBhIHNwZWNpZmljIHByb2Nlc3NpbmcgcHVycG9zZS4gSWYgdGhlIHByb2Nlc3Npbmcgb2YgcGVyc29uYWwgZGF0YSBpcyBuZWNlc3NhcnkgZm9yIHRoZSBwZXJmb3JtYW5jZSBvZiBhIGNvbnRyYWN0IHRvIHdoaWNoIHRoZSBkYXRhIHN1YmplY3QgaXMgcGFydHksIGFzIGlzIHRoZSBjYXNlLCBmb3IgZXhhbXBsZSwgd2hlbiBwcm9jZXNzaW5nIG9wZXJhdGlvbnMgYXJlIG5lY2Vzc2FyeSBmb3IgdGhlIHN1cHBseSBvZiBnb29kcyBvciB0byBwcm92aWRlIGFueSBvdGhlciBzZXJ2aWNlLCB0aGUgcHJvY2Vzc2luZyBpcyBiYXNlZCBvbiBBcnRpY2xlIDYoMSlsaXQuIGIgR0RQUi4gVGhlIHNhbWUgYXBwbGllcyB0byBzdWNoIHByb2Nlc3Npbmcgb3BlcmF0aW9ucyB3aGljaCBhcmUgbmVjZXNzYXJ5IGZvciBjYXJyeWluZyBvdXQgcHJlLWNvbnRyYWN0dWFsIG1lYXN1cmVzLCBmb3IgZXhhbXBsZSBpbiB0aGUgY2FzZSBvZiBpbnF1aXJpZXMgY29uY2VybmluZyBvdXIgcHJvZHVjdHMgb3Igc2VydmljZXMuIElzIG91ciBjb21wYW55IHN1YmplY3QgdG8gYSBsZWdhbCBvYmxpZ2F0aW9uIGJ5IHdoaWNoIHByb2Nlc3Npbmcgb2YgcGVyc29uYWwgZGF0YSBpcyByZXF1aXJlZCwgc3VjaCBhcyBmb3IgdGhlIGZ1bGZpbGxtZW50IG9mIHRheCBvYmxpZ2F0aW9ucywgdGhlIHByb2Nlc3NpbmcgaXMgYmFzZWQgb24gQXJ0LiA2KDEpbGl0LiBjIEdEUFIuPGJyIFwvPlxuSW4gcmFyZSBjYXNlcywgdGhlIHByb2Nlc3Npbmcgb2YgcGVyc29uYWwgZGF0YSBtYXkgYmUgbmVjZXNzYXJ5IHRvIHByb3RlY3QgdGhlIHZpdGFsIGludGVyZXN0cyBvZiB0aGUgZGF0YSBzdWJqZWN0IG9yIG9mIGFub3RoZXIgbmF0dXJhbCBwZXJzb24uIFRoaXMgd291bGQgYmUgdGhlIGNhc2UsIGZvciBleGFtcGxlLCBpZiBhIHZpc2l0b3Igd2VyZSBpbmp1cmVkIGluIG91ciBjb21wYW55IGFuZCBoaXMgbmFtZSwgYWdlLCBoZWFsdGggaW5zdXJhbmNlIGRhdGEgb3Igb3RoZXIgdml0YWwgaW5mb3JtYXRpb24gd291bGQgaGF2ZSB0byBiZSBwYXNzZWQgb24gdG8gYSBkb2N0b3IsIGhvc3BpdGFsIG9yIG90aGVyIHRoaXJkIHBhcnR5LiBUaGVuIHRoZSBwcm9jZXNzaW5nIHdvdWxkIGJlIGJhc2VkIG9uIEFydC4gNigxKWxpdC4gZCBHRFBSLjxiciBcLz5cbkZpbmFsbHksIHByb2Nlc3Npbmcgb3BlcmF0aW9ucyBjb3VsZCBiZSBiYXNlZCBvbiBBcnRpY2xlIDYoMSlsaXQuIGYgR0RQUi4gVGhpcyBsZWdhbCBiYXNpcyBpcyB1c2VkIGZvciBwcm9jZXNzaW5nIG9wZXJhdGlvbnMgd2hpY2ggYXJlIG5vdCBjb3ZlcmVkIGJ5IGFueSBvZiB0aGUgYWJvdmVtZW50aW9uZWQgbGVnYWwgZ3JvdW5kcywgaWYgcHJvY2Vzc2luZyBpcyBuZWNlc3NhcnkgZm9yIHRoZSBwdXJwb3NlcyBvZiB0aGUgbGVnaXRpbWF0ZSBpbnRlcmVzdHMgcHVyc3VlZCBieSBvdXIgY29tcGFueSBvciBieSBhIHRoaXJkIHBhcnR5LCBleGNlcHQgd2hlcmUgc3VjaCBpbnRlcmVzdHMgYXJlIG92ZXJyaWRkZW4gYnkgdGhlIGludGVyZXN0cyBvciBmdW5kYW1lbnRhbCByaWdodHMgYW5kIGZyZWVkb21zIG9mIHRoZSBkYXRhIHN1YmplY3Qgd2hpY2ggcmVxdWlyZSBwcm90ZWN0aW9uIG9mIHBlcnNvbmFsIGRhdGEuIFN1Y2ggcHJvY2Vzc2luZyBvcGVyYXRpb25zIGFyZSBwYXJ0aWN1bGFybHkgcGVybWlzc2libGUgYmVjYXVzZSB0aGV5IGhhdmUgYmVlbiBzcGVjaWZpY2FsbHkgbWVudGlvbmVkIGJ5IHRoZSBFdXJvcGVhbiBsZWdpc2xhdG9yLiBIZSBjb25zaWRlcmVkIHRoYXQgYSBsZWdpdGltYXRlIGludGVyZXN0IGNvdWxkIGJlIGFzc3VtZWQgaWYgdGhlIGRhdGEgc3ViamVjdCBpcyBhIGNsaWVudCBvZiB0aGUgY29udHJvbGxlciAoUmVjaXRhbCA0NyBTZW50ZW5jZSAyIEdEUFIpLjxiciBcLz5cbjxoND5UaGUgbGVnaXRpbWF0ZSBpbnRlcmVzdHMgcHVyc3VlZCBieSB0aGUgY29udHJvbGxlciBvciBieSBhIHRoaXJkIHBhcnR5PFwvaDQ+PGJyIFwvPlxuV2hlcmUgdGhlIHByb2Nlc3Npbmcgb2YgcGVyc29uYWwgZGF0YSBpcyBiYXNlZCBvbiBBcnRpY2xlIDYoMSlsaXQuIGYgR0RQUiBvdXIgbGVnaXRpbWF0ZSBpbnRlcmVzdCBpcyB0byBjYXJyeSBvdXQgb3VyIGJ1c2luZXNzIGluIGZhdm9yIG9mIHRoZSB3ZWxsLWJlaW5nIG9mIGFsbCBvdXIgZW1wbG95ZWVzIGFuZCB0aGUgc2hhcmVob2xkZXJzLjxiciBcLz5cbjxoND5QZXJpb2QgZm9yIHdoaWNoIHRoZSBwZXJzb25hbCBkYXRhIHdpbGwgYmUgc3RvcmVkPFwvaDQ+PGJyIFwvPlxuVGhlIGNyaXRlcmlhIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZSBwZXJpb2Qgb2Ygc3RvcmFnZSBvZiBwZXJzb25hbCBkYXRhIGlzIHRoZSByZXNwZWN0aXZlIHN0YXR1dG9yeSByZXRlbnRpb24gcGVyaW9kLiBBZnRlciBleHBpcmF0aW9uIG9mIHRoYXQgcGVyaW9kLCB0aGUgY29ycmVzcG9uZGluZyBkYXRhIGlzIHJvdXRpbmVseSBkZWxldGVkLCBhcyBsb25nIGFzIGl0IGlzIG5vIGxvbmdlciBuZWNlc3NhcnkgZm9yIHRoZSBmdWxmaWxsbWVudCBvZiB0aGUgY29udHJhY3Qgb3IgdGhlIGluaXRpYXRpb24gb2YgYSBjb250cmFjdC48YnIgXC8+XG48aDQ+UHJvdmlzaW9uIG9mIHBlcnNvbmFsIGRhdGEgYXMgc3RhdHV0b3J5IG9yIGNvbnRyYWN0dWFsIHJlcXVpcmVtZW50OyBSZXF1aXJlbWVudCBuZWNlc3NhcnkgdG8gZW50ZXIgaW50byBhIGNvbnRyYWN0OyBPYmxpZ2F0aW9uIG9mIHRoZSBkYXRhIHN1YmplY3QgdG8gcHJvdmlkZSB0aGUgcGVyc29uYWwgZGF0YTsgcG9zc2libGUgY29uc2VxdWVuY2VzIG9mIGZhaWx1cmUgdG8gcHJvdmlkZSBzdWNoIGRhdGE8XC9oND48YnIgXC8+XG5XZSBjbGFyaWZ5IHRoYXQgdGhlIHByb3Zpc2lvbiBvZiBwZXJzb25hbCBkYXRhIGlzIHBhcnRseSByZXF1aXJlZCBieSBsYXcgKGUuZy4gdGF4IHJlZ3VsYXRpb25zKSBvciBjYW4gYWxzbyByZXN1bHQgZnJvbSBjb250cmFjdHVhbCBwcm92aXNpb25zIChlLmcuIGluZm9ybWF0aW9uIG9uIHRoZSBjb250cmFjdHVhbCBwYXJ0bmVyKS48XC9wPlxuPHA+U29tZXRpbWVzIGl0IG1heSBiZSBuZWNlc3NhcnkgdG8gY29uY2x1ZGUgYSBjb250cmFjdCB0aGF0IHRoZSBkYXRhIHN1YmplY3QgcHJvdmlkZXMgdXMgd2l0aCBwZXJzb25hbCBkYXRhLCB3aGljaCBtdXN0IHN1YnNlcXVlbnRseSBiZSBwcm9jZXNzZWQgYnkgdXMuIFRoZSBkYXRhIHN1YmplY3QgaXMsIGZvciBleGFtcGxlLCBvYmxpZ2VkIHRvIHByb3ZpZGUgdXMgd2l0aCBwZXJzb25hbCBkYXRhIHdoZW4gb3VyIGNvbXBhbnkgc2lnbnMgYSBjb250cmFjdCB3aXRoIGhpbSBvciBoZXIuIFRoZSBub24tcHJvdmlzaW9uIG9mIHRoZSBwZXJzb25hbCBkYXRhIHdvdWxkIGhhdmUgdGhlIGNvbnNlcXVlbmNlIHRoYXQgdGhlIGNvbnRyYWN0IHdpdGggdGhlIGRhdGEgc3ViamVjdCBjb3VsZCBub3QgYmUgY29uY2x1ZGVkLjxcL3A+XG48cD5CZWZvcmUgcGVyc29uYWwgZGF0YSBpcyBwcm92aWRlZCBieSB0aGUgZGF0YSBzdWJqZWN0LCB0aGUgZGF0YSBzdWJqZWN0IG11c3QgY29udGFjdCBhbnkgZW1wbG95ZWUuIFRoZSBlbXBsb3llZSBjbGFyaWZpZXMgdG8gdGhlIGRhdGEgc3ViamVjdCB3aGV0aGVyIHRoZSBwcm92aXNpb24gb2YgdGhlIHBlcnNvbmFsIGRhdGEgaXMgcmVxdWlyZWQgYnkgbGF3IG9yIGNvbnRyYWN0IG9yIGlzIG5lY2Vzc2FyeSBmb3IgdGhlIGNvbmNsdXNpb24gb2YgdGhlIGNvbnRyYWN0LCB3aGV0aGVyIHRoZXJlIGlzIGFuIG9ibGlnYXRpb24gdG8gcHJvdmlkZSB0aGUgcGVyc29uYWwgZGF0YSBhbmQgdGhlIGNvbnNlcXVlbmNlcyBvZiBub24tcHJvdmlzaW9uIG9mIHRoZSBwZXJzb25hbCBkYXRhLjxiciBcLz5cbjxoND5FeGlzdGVuY2Ugb2YgYXV0b21hdGVkIGRlY2lzaW9uLW1ha2luZzxcL2g0PjxiciBcLz5cbkFzIGEgcmVzcG9uc2libGUgY29tcGFueSwgd2UgZG8gbm90IHVzZSBhdXRvbWF0aWMgZGVjaXNpb24tbWFraW5nIG9yIHByb2ZpbGluZy48XC9wPjxcL2Rpdj5cbjxwPjxoMz5HZW5lcmFsIENvb2tpZXM8XC9oMz48YnIgXC8+XG48Yj5Db29raWVzIGZyb20gV29yZFByZXNzPFwvYj48YnIgXC8+XG48dGFibGUgc3R5bGU9XCJ3aWR0aDogMTAwJTtcIj48YnIgXC8+XG48dGJvZHk+PGJyIFwvPlxuPHRyPjxiciBcLz5cbjx0aD5OYW1lPFwvdGg+PGJyIFwvPlxuPHRoPlB1cnBvc2U8XC90aD48YnIgXC8+XG48dGg+VmFsaWRpdHk8XC90aD48YnIgXC8+XG48XC90cj48YnIgXC8+XG48dHI+PGJyIFwvPlxuPHRkPndvcmRwcmVzc190ZXN0X2Nvb2tpZTxcL3RkPjxiciBcLz5cbjx0ZD5UaGlzIGNvb2tpZSBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHVzZSBvZiBjb29raWVzIGhhcyBiZWVuIGRpc2FibGVkIGluIHRoZSBicm93c2VyLiBEdXJhdGlvbiBvZiBzdG9yYWdlOiBVbnRpbCB0aGUgZW5kIG9mIHRoZSBicm93c2VyIHNlc3Npb24gKHdpbGwgYmUgZGVsZXRlZCB3aGVuIGNsb3NpbmcgeW91ciBpbnRlcm5ldCBicm93c2VyKS48XC90ZD48YnIgXC8+XG48dGQ+U2Vzc2lvbjxcL3RkPjxiciBcLz5cbjxcL3RyPjxiciBcLz5cbjx0cj48YnIgXC8+XG48dGQ+UEhQU0VTU0lEPFwvdGQ+PGJyIFwvPlxuPHRkPlRoaXMgY29va2llIHN0b3JlcyB5b3VyIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIHJlc3BlY3QgdG8gUEhQIGFwcGxpY2F0aW9ucywgZW5zdXJpbmcgdGhhdCBhbGwgZmVhdHVyZXMgb2YgdGhpcyB3ZWJzaXRlIGJhc2VkIG9uIHRoZSBQSFAgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgYXJlIGZ1bGx5IGRpc3BsYXllZC4gRHVyYXRpb24gb2Ygc3RvcmFnZTogVW50aWwgdGhlIGVuZCBvZiB0aGUgYnJvd3NlciBzZXNzaW9uICh3aWxsIGJlIGRlbGV0ZWQgd2hlbiBjbG9zaW5nIHlvdXIgaW50ZXJuZXQgYnJvd3NlcikuPFwvdGQ+PGJyIFwvPlxuPHRkPlNlc3Npb248XC90ZD48YnIgXC8+XG48XC90cj48YnIgXC8+XG48dHI+PGJyIFwvPlxuPHRkPndvcmRwcmVzc19ha21fbW9iaWxlPFwvdGQ+PGJyIFwvPlxuPHRkPlRoZXNlIGNvb2tpZXMgYXJlIG9ubHkgdXNlZCBmb3IgdGhlIGFkbWluaXN0cmF0aW9uIGFyZWEgb2YgXHUyMDBiXHUyMDBiV29yZFByZXNzLjxcL3RkPjxiciBcLz5cbjx0ZD4xIFllYXI8XC90ZD48YnIgXC8+XG48XC90cj48YnIgXC8+XG48dHI+PGJyIFwvPlxuPHRkPndvcmRwcmVzc19sb2dnZWRfaW5fYWttX21vYmlsZTxcL3RkPjxiciBcLz5cbjx0ZD5UaGVzZSBjb29raWVzIGFyZSBvbmx5IHVzZWQgZm9yIHRoZSBhZG1pbmlzdHJhdGlvbiBhcmVhIG9mIFx1MjAwYlx1MjAwYldvcmRQcmVzcyBhbmQgZG8gbm90IGFwcGx5IHRvIG90aGVyIHNpdGUgdmlzaXRvcnMuPFwvdGQ+PGJyIFwvPlxuPHRkPlNlc3Npb248XC90ZD48YnIgXC8+XG48XC90cj48YnIgXC8+XG48dHI+PGJyIFwvPlxuPHRkPndwLXNldHRpbmdzLWFrbV9tb2JpbGU8XC90ZD48YnIgXC8+XG48dGQ+VGhlc2UgY29va2llcyBhcmUgb25seSB1c2VkIGZvciB0aGUgYWRtaW5pc3RyYXRpb24gYXJlYSBvZiBcdTIwMGJcdTIwMGJXb3JkUHJlc3MgYW5kIGRvIG5vdCBhcHBseSB0byBvdGhlciBzaXRlIHZpc2l0b3JzLjxcL3RkPjxiciBcLz5cbjx0ZD5TZXNzaW9uPFwvdGQ+PGJyIFwvPlxuPFwvdHI+PGJyIFwvPlxuPHRyPjxiciBcLz5cbjx0ZD53cC1zZXR0aW5ncy10aW1lLWFrbV9tb2JpbGU8XC90ZD48YnIgXC8+XG48dGQ+VGhlc2UgY29va2llcyBhcmUgb25seSB1c2VkIGZvciB0aGUgYWRtaW5pc3RyYXRpb24gYXJlYSBvZiBcdTIwMGJcdTIwMGJXb3JkUHJlc3MgYW5kIGRvIG5vdCBhcHBseSB0byBvdGhlciBzaXRlIHZpc2l0b3JzLjxcL3RkPjxiciBcLz5cbjx0ZD5TZXNzaW9uPFwvdGQ+PGJyIFwvPlxuPFwvdHI+PGJyIFwvPlxuPHRyPjxiciBcLz5cbjx0ZD5hYjxcL3RkPjxiciBcLz5cbjx0ZD5JcyB1c2VkIGZvciBBIFwvIEIgdGVzdGluZyBvZiBuZXcgZmVhdHVyZXMuPFwvdGQ+PGJyIFwvPlxuPHRkPlNlc3Npb248XC90ZD48YnIgXC8+XG48XC90cj48YnIgXC8+XG48dHI+PGJyIFwvPlxuPHRkPmFrbV9tb2JpbGU8XC90ZD48YnIgXC8+XG48dGQ+c2F2ZXMgaWYgdGhlIHZpc2l0b3Igd2FudHMgdG8gc2VlIHRoZSBtb2JpbGUgdmVyc2lvbiBvZiBhIHdlYnNpdGUuPFwvdGQ+PGJyIFwvPlxuPHRkPjEgRGF5PFwvdGQ+PGJyIFwvPlxuPFwvdHI+PGJyIFwvPlxuPFwvdGJvZHk+PGJyIFwvPlxuPFwvdGFibGU+PFwvcD5cbjxwPjxiPkNvb2tpZXMgZnJvbSBQb2x5bGFuZzxcL2I+PFwvcD5cbjx0YWJsZSBzdHlsZT1cIndpZHRoOjEwMCVcIj5cbjx0cj5cbjx0aD5OYW1lPFwvdGg+XG48dGg+UHVycG9zZTxcL3RoPlxuPHRoPlZhbGlkaXR5PFwvdGg+XG48XC90cj5cbjx0cj5cbjx0ZD5wbGxfbGFuZ3VhZ2U8XC90ZD5cbjx0ZD5UaGlzIGNvb2tpZSBzdG9yZXMgdGhlIGxhbmd1YWdlIGNob2ljZSBhbmQgdGhlIGdlb2dyYXBoaWNhbCBvcmlnaW4gb2YgdGhlIHVzZXIuPFwvdGQ+XG48dGQ+MSBKYWhyPFwvdGQ+XG48XC90cj5cbjxcL3RhYmxlPlxuPHA+PGI+Q29va2llcyBmcm9tIERTR1ZPIEFJTyBmb3IgV29yZFByZXNzPFwvYj48XC9wPlxuPHRhYmxlIHN0eWxlPVwid2lkdGg6MTAwJVwiPlxuPHRyPlxuPHRoPk5hbWU8XC90aD5cbjx0aD5QdXJwb3NlPFwvdGg+XG48dGg+VmFsaWRpdHk8XC90aD5cbjxcL3RyPlxuPHRyPlxuPHRkPmRzZ3ZvYWlvPFwvdGQ+XG48dGQ+VGhpcyBMb2NhbFN0b3JhZ2Uga2V5IFwvIHZhbHVlIHN0b3JlcyB3aGljaCBzZXJ2aWNlcyB0aGUgdXNlciBoYXMgYWdyZWVkIHRvIG9yIG5vdC48XC90ZD5cbjx0ZD52YXJpYWJsZTxcL3RkPlxuPFwvdHI+XG48dHI+XG48dGQ+X3VuaXF1ZXVpZDxcL3RkPlxuPHRkPlRoaXMgTG9jYWxTdG9yYWdlIGtleSBcLyB2YWx1ZSBzdG9yZXMgYSBnZW5lcmF0ZWQgSUQgc28gdGhhdCB0aGUgdXNlcidzIG9wdC1pbiBcLyBvcHQtb3V0IGFjdGlvbnMgY2FuIGJlIGRvY3VtZW50ZWQuIFRoZSBJRCBpcyBzdG9yZWQgYW5vbnltb3VzbHkuPFwvdGQ+XG48dGQ+dmFyaWFibGU8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmRzZ3ZvYWlvX2NyZWF0ZTxcL3RkPlxuPHRkPlRoaXMgTG9jYWxTdG9yYWdlIGtleSBcLyB2YWx1ZSBzdG9yZXMgdGhlIHRpbWUgd2hlbiBfdW5pcXVldWlkIHdhcyBnZW5lcmF0ZWQuPFwvdGQ+XG48dGQ+dmFyaWFibGU8XC90ZD5cbjxcL3RyPlxuPHRyPlxuPHRkPmRzZ3ZvYWlvX3Znd29ydF9kaXNhYmxlPFwvdGQ+XG48dGQ+VGhpcyBMb2NhbFN0b3JhZ2Uga2V5IFwvIHZhbHVlIHN0b3JlcyB3aGV0aGVyIHRoZSBzZXJ2aWNlIFZHIHdvcmQgc3RhbmRhcmQgaXMgYWxsb3dlZCBvciBub3QgKHNldHRpbmcgb2YgdGhlIHBhZ2Ugb3BlcmF0b3IpLjxcL3RkPlxuPHRkPnZhcmlhYmxlPFwvdGQ+XG48XC90cj5cbjx0cj5cbjx0ZD5kc2d2b2Fpb19nYV9kaXNhYmxlPFwvdGQ+XG48dGQ+VGhpcyBMb2NhbFN0b3JhZ2Uga2V5IFwvIHZhbHVlIHN0b3JlcyB3aGV0aGVyIHRoZSBzZXJ2aWNlIEdvb2dsZSBBbmFseXRpY3MgU3RhbmRhcmQgaXMgYWxsb3dlZCBvciBub3QgKEhpcmluZyB0aGUgc2l0ZSBvcGVyYXRvcikuPFwvdGQ+XG48dGQ+dmFyaWFibGU8XC90ZD5cbjxcL3RyPlxuPFwvdGFibGU+XG4iLCJsYW5ndWFnZXN3aXRjaGVyIjoiXG5cdFx0XHRcdFx0PHVsIGNsYXNzPVwiZHNndm9fbGFuZ19zd2l0Y2hlclwiPlx0PGxpIGNsYXNzPVwibGFuZy1pdGVtIGxhbmctaXRlbS0xMyBsYW5nLWl0ZW0tZGUgbGFuZy1pdGVtLWZpcnN0XCI+PGEgIGxhbmc9XCJkZS1ERVwiIGhyZWZsYW5nPVwiZGUtREVcIiBocmVmPVwiaHR0cHM6XC9cL3d3dy5hZGZpcy5kZVwvXCI+PGltZyBzcmM9XCJcL3dwLWNvbnRlbnRcL3BvbHlsYW5nXC9kZV9ERS5wbmdcIiBhbHQ9XCJEZXV0c2NoXCIgXC8+PFwvYT48XC9saT5cblx0PGxpIGNsYXNzPVwibGFuZy1pdGVtIGxhbmctaXRlbS0xOSBsYW5nLWl0ZW0tZW4gY3VycmVudC1sYW5nXCI+PGEgIGxhbmc9XCJlbi1HQlwiIGhyZWZsYW5nPVwiZW4tR0JcIiBocmVmPVwiaHR0cHM6XC9cL3d3dy5hZGZpcy5kZVwvZW5cL1wiPjxpbWcgc3JjPVwiXC93cC1jb250ZW50XC9wb2x5bGFuZ1wvZW5fR0IucG5nXCIgYWx0PVwiRW5nbGlzaFwiIFwvPjxcL2E+PFwvbGk+XG48XC91bD5cblx0XHRcdFx0XHQiLCJwaXhlbG9yZGVyaWQiOiIiLCJmYnBpeGVsX2NvbnRlbnRfdHlwZSI6IiIsImZicGl4ZWxfY29udGVudF9pZHMiOiIiLCJmYnBpeGVsX2N1cnJlbmN5IjoiIiwiZmJwaXhlbF9wcm9kdWN0X2NhdCI6IiIsImZicGl4ZWxfY29udGVudF9uYW1lIjoiIiwiZmJwaXhlbF9wcm9kdWN0X3ByaWNlIjoiIiwiaXNidXllZHNlbmRldCI6IiIsInBpeGVsZXZlbnQiOiIiLCJwaXhlbGV2ZW50Y3VycmVuY3kiOiIiLCJwaXhlbGV2ZW50YW1vdW50IjoiIiwib3V0Z29pbmdfdGV4dCI6IjxiPllvdSBhcmUgbm93IGxlYXZpbmcgb3VyIEludGVybmV0IHByZXNlbmNlPFwvYj5cbkFzIHlvdSBoYXZlIGNsaWNrZWQgb24gYW4gZXh0ZXJuYWwgbGluayB5b3UgYXJlIG5vdyBsZWF2aW5nIG91ciB3ZWJzaXRlLlxuSWYgeW91IGFncmVlIHRvIHRoaXMsIHBsZWFzZSBjbGljayBvbiB0aGUgZm9sbG93aW5nIGJ1dHRvbjpcbiIsInlvdXR1YmVfc3B0IjoiRm9yIHRoZSB1c2Ugb2YgWW91VHViZSAoWW91VHViZSwgTExDLCA5MDEgQ2hlcnJ5IEF2ZS4sIFNhbiBCcnVubywgQ0EgOTQwNjYsIFVTQSkgd2UgbmVlZCB5b3VyIGNvbnNlbnQgYWNjb3JkaW5nIHRvIERTR1ZPLlxyXG5cclxuWW91VHViZSBjb2xsZWN0cywgcHJvY2Vzc2VzIGFuZCBzdG9yZXMgcGVyc29uYWwgZGF0YS4gV2hpY2ggZGF0YSBleGFjdGx5IHlvdSB0YWtlIGZyb20gdGhlIGRhdGEgcHJvdGVjdGlvbiBjb25kaXRpb25zLiIsInR3aXR0ZXJfc3B0IjoiIiwibGlua2VkaW5fc3B0IjoiIiwic2hhcmVhaG9saWNfc3B0IjoiIiwidmd3b3J0X3NwdCI6IiIsImFjY2VwdHRleHQiOiJBbGxvdyIsInBvbGljeXRleHRidG4iOiJQcml2YWN5IFBvbGljeSIsInNob3dfbGF5ZXJ0ZXh0Ijoib2ZmIn07Ci8qIF1dPiAqLwo=
10 ms
tarteaucitron.min.js
344 ms
javascript;base64,CmpRdWVyeSggZG9jdW1lbnQgKS5yZWFkeShmdW5jdGlvbigpIHsKCQkJCQkKCQkJCQl0YXJ0ZWF1Y2l0cm9uLmluaXQoewoKCQkJCQkJImhhc2h0YWciOiAiI3RhcnRlYXVjaXRyb24iLAoKCQkJCQkJImNvb2tpZU5hbWUiOiAiZHNndm9haW93cF9jb29raWUiLCAKCgkJCQkJCSJoaWdoUHJpdmFjeSI6IHRydWUsCgoJCQkJCQkib3JpZW50YXRpb24iOiAiY2VudGVyIiwKCgkJCQkJCSJhZGJsb2NrZXIiOiBmYWxzZSwgCgoJCQkJCQkic2hvd0FsZXJ0U21hbGwiOiB0cnVlLCAKCgkJCQkJCSJjb29raWVzbGlzdCI6IHRydWUsIAoKCQkJCQkJInJlbW92ZUNyZWRpdCI6IHRydWUsIAoKCQkJCQkJImV4cGlyZUNvb2tpZSI6IDcsIAoKCQkJCQkJImhhbmRsZUJyb3dzZXJETlRSZXF1ZXN0IjogZmFsc2UsIAoKCQkJCQkJLy8iY29va2llRG9tYWluIjogIi53d3cuYWRmaXMuZGUiIAoKCQkJCQkJInJlbW92ZUNyZWRpdCI6IHRydWUsIAoKCQkJCQkJIm1vcmVJbmZvTGluayI6IGZhbHNlLCAKCgkJCQkJCX0pOwoJCQkJCX0pOwkKCQkJCXZhciB0YXJ0ZWF1Y2l0cm9uRm9yY2VMYW5ndWFnZSA9ICdlbicK
10 ms
autoptimize_single_e96846193549df893ebe4d182543230a.js
446 ms
javascript;base64,CgoJCQkJalF1ZXJ5KCBkb2N1bWVudCApLnJlYWR5KGZ1bmN0aW9uKCkgewoJCQkJCQkJCQkJKHRhcnRlYXVjaXRyb24uam9iID0gdGFydGVhdWNpdHJvbi5qb2IgfHwgW10pLnB1c2goJ3lvdXR1YmUnKTsKCQkJCQkJCQkJCgkJCQkKCQkJCQkJCQkJCgoJCQkJCgkJCQkJCgoJCQkJCQkJCQoKCQkJCQkJCQkKCQkJCQkKCQkJCQoJCQkJCQkJCQkKCgkJCQkJCQkKCgkJCQkJCQkJCgoJCQkJCgkJCQkKCQkJCQoJCQkJCgkJCQkKCQkJCQoJCQkJCSh0YXJ0ZWF1Y2l0cm9uLmpvYiA9IHRhcnRlYXVjaXRyb24uam9iIHx8IFtdKS5wdXNoKCd3b3JkcHJlc3NtYWluJyk7CgoJCQkJfSk7CgoJCQk=
8 ms
javascript;base64,CiAvKiA8IVtDREFUQVsgKi8gIAp2YXIgYXZpYV9mcmFtZXdvcmtfZ2xvYmFscyA9IGF2aWFfZnJhbWV3b3JrX2dsb2JhbHMgfHwge307CiAgICBhdmlhX2ZyYW1ld29ya19nbG9iYWxzLmZyYW1ld29ya1VybCA9ICdodHRwczovL3d3dy5hZGZpcy5kZS93cC1jb250ZW50L3RoZW1lcy9lbmZvbGQvZnJhbWV3b3JrLyc7CiAgICBhdmlhX2ZyYW1ld29ya19nbG9iYWxzLmluc3RhbGxlZEF0ID0gJ2h0dHBzOi8vd3d3LmFkZmlzLmRlL3dwLWNvbnRlbnQvdGhlbWVzL2VuZm9sZC8nOwogICAgYXZpYV9mcmFtZXdvcmtfZ2xvYmFscy5hamF4dXJsID0gJ2h0dHBzOi8vd3d3LmFkZmlzLmRlL3dwLWFkbWluL2FkbWluLWFqYXgucGhwJzsKLyogXV0+ICovIAo=
8 ms
autoptimize_single_86647db10e27b326083a32fb02fa6149.js
557 ms
autoptimize_single_15147a932f05e9290fe5c9e9a62dbbc5.js
453 ms
autoptimize_single_a5d43afdb4b9bd252667aca633d893e7.js
555 ms
autoptimize_single_50635c033f96aa4971f52bf3d8ace892.js
565 ms
autoptimize_single_52d523a696fa250f3472a55082c28961.js
663 ms
autoptimize_single_1b828e4b82af3323f4965c15cc6c9a89.js
664 ms
autoptimize_single_2efdd24c4d388c52ae68ea34290995c6.js
668 ms
autoptimize_single_787a33fd04a42972686fc2e10bbe5fbe.js
671 ms
autoptimize_single_ea85d3cc4a09808e7c51dc745c896a0f.js
674 ms
autoptimize_single_385accb323f028f429015ed517943a3c.js
821 ms
autoptimize_single_818740c2785659d2e489b2fd8bc4081e.js
822 ms
jquery.magnific-popup.min.js
821 ms
autoptimize_single_7da81366e095e5f760c2af88f415a48c.js
822 ms
autoptimize_single_5d158660319fa700e0c88699c6c468be.js
823 ms
autoptimize_single_a45b4de232b2709e5017d30ed9d2642d.js
823 ms
autoptimize_single_f14327fd8c9742db20ccc844f2823742.js
892 ms
javascript;base64,CnZhciBtZWpzTDEwbiA9IHsibGFuZ3VhZ2UiOiJlbiIsInN0cmluZ3MiOnsibWVqcy5kb3dubG9hZC1maWxlIjoiRG93bmxvYWQgRmlsZSIsIm1lanMuaW5zdGFsbC1mbGFzaCI6IllvdSBhcmUgdXNpbmcgYSBicm93c2VyIHRoYXQgZG9lcyBub3QgaGF2ZSBGbGFzaCBwbGF5ZXIgZW5hYmxlZCBvciBpbnN0YWxsZWQuIFBsZWFzZSB0dXJuIG9uIHlvdXIgRmxhc2ggcGxheWVyIHBsdWdpbiBvciBkb3dubG9hZCB0aGUgbGF0ZXN0IHZlcnNpb24gZnJvbSBodHRwczpcL1wvZ2V0LmFkb2JlLmNvbVwvZmxhc2hwbGF5ZXJcLyIsIm1lanMuZnVsbHNjcmVlbiI6IkZ1bGxzY3JlZW4iLCJtZWpzLnBsYXkiOiJQbGF5IiwibWVqcy5wYXVzZSI6IlBhdXNlIiwibWVqcy50aW1lLXNsaWRlciI6IlRpbWUgU2xpZGVyIiwibWVqcy50aW1lLWhlbHAtdGV4dCI6IlVzZSBMZWZ0XC9SaWdodCBBcnJvdyBrZXlzIHRvIGFkdmFuY2Ugb25lIHNlY29uZCwgVXBcL0Rvd24gYXJyb3dzIHRvIGFkdmFuY2UgdGVuIHNlY29uZHMuIiwibWVqcy5saXZlLWJyb2FkY2FzdCI6IkxpdmUgQnJvYWRjYXN0IiwibWVqcy52b2x1bWUtaGVscC10ZXh0IjoiVXNlIFVwXC9Eb3duIEFycm93IGtleXMgdG8gaW5jcmVhc2Ugb3IgZGVjcmVhc2Ugdm9sdW1lLiIsIm1lanMudW5tdXRlIjoiVW5tdXRlIiwibWVqcy5tdXRlIjoiTXV0ZSIsIm1lanMudm9sdW1lLXNsaWRlciI6IlZvbHVtZSBTbGlkZXIiLCJtZWpzLnZpZGVvLXBsYXllciI6IlZpZGVvIFBsYXllciIsIm1lanMuYXVkaW8tcGxheWVyIjoiQXVkaW8gUGxheWVyIiwibWVqcy5jYXB0aW9ucy1zdWJ0aXRsZXMiOiJDYXB0aW9uc1wvU3VidGl0bGVzIiwibWVqcy5jYXB0aW9ucy1jaGFwdGVycyI6IkNoYXB0ZXJzIiwibWVqcy5ub25lIjoiTm9uZSIsIm1lanMuYWZyaWthYW5zIjoiQWZyaWthYW5zIiwibWVqcy5hbGJhbmlhbiI6IkFsYmFuaWFuIiwibWVqcy5hcmFiaWMiOiJBcmFiaWMiLCJtZWpzLmJlbGFydXNpYW4iOiJCZWxhcnVzaWFuIiwibWVqcy5idWxnYXJpYW4iOiJCdWxnYXJpYW4iLCJtZWpzLmNhdGFsYW4iOiJDYXRhbGFuIiwibWVqcy5jaGluZXNlIjoiQ2hpbmVzZSIsIm1lanMuY2hpbmVzZS1zaW1wbGlmaWVkIjoiQ2hpbmVzZSAoU2ltcGxpZmllZCkiLCJtZWpzLmNoaW5lc2UtdHJhZGl0aW9uYWwiOiJDaGluZXNlIChUcmFkaXRpb25hbCkiLCJtZWpzLmNyb2F0aWFuIjoiQ3JvYXRpYW4iLCJtZWpzLmN6ZWNoIjoiQ3plY2giLCJtZWpzLmRhbmlzaCI6IkRhbmlzaCIsIm1lanMuZHV0Y2giOiJEdXRjaCIsIm1lanMuZW5nbGlzaCI6IkVuZ2xpc2giLCJtZWpzLmVzdG9uaWFuIjoiRXN0b25pYW4iLCJtZWpzLmZpbGlwaW5vIjoiRmlsaXBpbm8iLCJtZWpzLmZpbm5pc2giOiJGaW5uaXNoIiwibWVqcy5mcmVuY2giOiJGcmVuY2giLCJtZWpzLmdhbGljaWFuIjoiR2FsaWNpYW4iLCJtZWpzLmdlcm1hbiI6Ikdlcm1hbiIsIm1lanMuZ3JlZWsiOiJHcmVlayIsIm1lanMuaGFpdGlhbi1jcmVvbGUiOiJIYWl0aWFuIENyZW9sZSIsIm1lanMuaGVicmV3IjoiSGVicmV3IiwibWVqcy5oaW5kaSI6IkhpbmRpIiwibWVqcy5odW5nYXJpYW4iOiJIdW5nYXJpYW4iLCJtZWpzLmljZWxhbmRpYyI6IkljZWxhbmRpYyIsIm1lanMuaW5kb25lc2lhbiI6IkluZG9uZXNpYW4iLCJtZWpzLmlyaXNoIjoiSXJpc2giLCJtZWpzLml0YWxpYW4iOiJJdGFsaWFuIiwibWVqcy5qYXBhbmVzZSI6IkphcGFuZXNlIiwibWVqcy5rb3JlYW4iOiJLb3JlYW4iLCJtZWpzLmxhdHZpYW4iOiJMYXR2aWFuIiwibWVqcy5saXRodWFuaWFuIjoiTGl0aHVhbmlhbiIsIm1lanMubWFjZWRvbmlhbiI6Ik1hY2Vkb25pYW4iLCJtZWpzLm1hbGF5IjoiTWFsYXkiLCJtZWpzLm1hbHRlc2UiOiJNYWx0ZXNlIiwibWVqcy5ub3J3ZWdpYW4iOiJOb3J3ZWdpYW4iLCJtZWpzLnBlcnNpYW4iOiJQZXJzaWFuIiwibWVqcy5wb2xpc2giOiJQb2xpc2giLCJtZWpzLnBvcnR1Z3Vlc2UiOiJQb3J0dWd1ZXNlIiwibWVqcy5yb21hbmlhbiI6IlJvbWFuaWFuIiwibWVqcy5ydXNzaWFuIjoiUnVzc2lhbiIsIm1lanMuc2VyYmlhbiI6IlNlcmJpYW4iLCJtZWpzLnNsb3ZhayI6IlNsb3ZhayIsIm1lanMuc2xvdmVuaWFuIjoiU2xvdmVuaWFuIiwibWVqcy5zcGFuaXNoIjoiU3BhbmlzaCIsIm1lanMuc3dhaGlsaSI6IlN3YWhpbGkiLCJtZWpzLnN3ZWRpc2giOiJTd2VkaXNoIiwibWVqcy50YWdhbG9nIjoiVGFnYWxvZyIsIm1lanMudGhhaSI6IlRoYWkiLCJtZWpzLnR1cmtpc2giOiJUdXJraXNoIiwibWVqcy51a3JhaW5pYW4iOiJVa3JhaW5pYW4iLCJtZWpzLnZpZXRuYW1lc2UiOiJWaWV0bmFtZXNlIiwibWVqcy53ZWxzaCI6IldlbHNoIiwibWVqcy55aWRkaXNoIjoiWWlkZGlzaCJ9fTsK
3 ms
mediaelement-and-player.min.js
1309 ms
mediaelement-migrate.min.js
892 ms
javascript;base64,Ci8qIDwhW0NEQVRBWyAqLwp2YXIgX3dwbWVqc1NldHRpbmdzID0geyJwbHVnaW5QYXRoIjoiXC93cC1pbmNsdWRlc1wvanNcL21lZGlhZWxlbWVudFwvIiwiY2xhc3NQcmVmaXgiOiJtZWpzLSIsInN0cmV0Y2hpbmciOiJyZXNwb25zaXZlIn07Ci8qIF1dPiAqLwo=
2 ms
wp-mediaelement.min.js
891 ms
AdFiS-Logo.png
161 ms
de_DE.png
178 ms
logo-bg6.jpg
282 ms
Background-Startseite.jpg
582 ms
AdFiS-Kreis-englisch-2020.png
571 ms
dopetac-sulfo100-rgb-web-300x105.png
308 ms
preparation-and-characterization-of-k2co3-doped-powdered-activated-carbon-36x36.jpg
570 ms
DEKRA-Qualitaetsmanagement-ISO-9001-en.png
580 ms
Fachverband-Biogas.png
581 ms
entypo-fontello.woff
493 ms
antic-v19-latin-regular.svg
572 ms
open-sans-v29-latin-regular.svg
625 ms
open-sans-v29-latin-600.svg
575 ms
analytics.js
46 ms
6z536OBQeOM
108 ms
collect
12 ms
www-player.css
11 ms
www-embed-player.js
31 ms
base.js
57 ms
fetch-polyfill.js
29 ms
ad_status.js
266 ms
Create
226 ms
qoe
195 ms
RyHSygdhfD3dME44-3NNtjQCjkAA9PJK5Mnnq9vnCgY.js
191 ms
embed.js
94 ms
id
47 ms
KFOmCnqEu92Fr1Mu4mxP.ttf
3 ms
KFOlCnqEu92Fr1MmEU9fBBc9.ttf
3 ms
6z536OBQeOM
120 ms
antic-v19-latin-regular.ttf
190 ms
open-sans-v29-latin-600.ttf
188 ms
open-sans-v29-latin-regular.ttf
276 ms
ad_status.js
76 ms
RyHSygdhfD3dME44-3NNtjQCjkAA9PJK5Mnnq9vnCgY.js
54 ms
id
65 ms
KFOmCnqEu92Fr1Mu4mxP.ttf
146 ms
KFOlCnqEu92Fr1MmEU9fBBc9.ttf
149 ms
adfis.de accessibility score
ARIA
These are opportunities to improve the usage of ARIA in your application which may enhance the experience for users of assistive technology, like a screen reader.
Impact
Issue
[aria-hidden="true"] elements contain focusable descendents
Contrast
These are opportunities to improve the legibility of your content.
Impact
Issue
Background and foreground colors do not have a sufficient contrast ratio.
Names and labels
These are opportunities to improve the semantics of the controls in your application. This may enhance the experience for users of assistive technology, like a screen reader.
Impact
Issue
<frame> or <iframe> elements do not have a title
Image elements do not have [alt] attributes
Navigation
These are opportunities to improve keyboard navigation in your application.
Impact
Issue
Heading elements are not in a sequentially-descending order
Tables and lists
These are opportunities to improve the experience of reading tabular or list data using assistive technology, like a screen reader.
Impact
Issue
List items (<li>) are not contained within <ul> or <ol> parent elements.
adfis.de best practices score
Trust and Safety
Impact
Issue
Does not use HTTPS
Ensure CSP is effective against XSS attacks
General
Impact
Issue
Detected JavaScript libraries
Browser errors were logged to the console
Page has valid source maps
adfis.de SEO score
Content Best Practices
Format your HTML in a way that enables crawlers to better understand your app’s content.
Impact
Issue
Links do not have descriptive text
Image elements do not have [alt] attributes
Mobile Friendly
Make sure your pages are mobile friendly so users don’t have to pinch or zoom in order to read the content pages. [Learn more](https://developers.google.com/search/mobile-sites/).
Impact
Issue
Document uses legible font sizes
Tap targets are not sized appropriately
EN
EN
UTF-8
Language claimed in HTML meta tag should match the language actually used on the web page. Otherwise Adfis.de can be misinterpreted by Google and other search engines. Our service has detected that English is used on the page, and it matches the claimed language. Our system also found out that Adfis.de main page’s claimed encoding is utf-8. Use of this encoding format is the best practice as the main page visitors from all over the world won’t have any issues with symbol transcription.
adfis.de
Open Graph data is detected on the main page of Ad FiS. This is the best way to make the web page social media friendly. Here is how it looks like on Facebook: