PageSourceSearch

https://www.contracttesting.com/proven-protocols/

html contracttesting.com collected 2026-10-05 18:14:41 UTC 89,884 bytes, 1,794 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en-US">
3<head >
4<meta charset="UTF-8" />
5<meta name="viewport" content="width=device-width, initial-scale=1" />
6<meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' />
7<link rel="alternate" hreflang="en" href="https://www.contracttesting.com/proven-protocols/" />
8<link rel="alternate" hreflang="fr" href="https://www.contracttesting.com/des-protocoles-prouves/?lang=fr" />
9<link rel="alternate" hreflang="x-default" href="https://www.contracttesting.com/proven-protocols/" />
10
11	<!-- This site is optimized with the Yoast SEO plugin v28.3 - https://yoast.com/product/yoast-seo-wordpress/ -->
12	<title>Proven Protocols - Contract Testing</title>
13	<meta name="description" content="Matrix Sciences Consumer Research utilizes proprietary technology and expert project management. Explore our refined protocols for product testing success." />
14	<link rel="canonical" href="https://www.contracttesting.com/proven-protocols/" />
15	<meta property="og:locale" content="en_US" />
16	<meta property="og:type" content="article" />
17	<meta property="og:title" content="Proven Protocols - Contract Testing" />
18	<meta property="og:description" content="Matrix Sciences Consumer Research utilizes proprietary technology and expert project management. Explore our refined protocols for product testing success." />
19	<meta property="og:url" content="https://www.contracttesting.com/proven-protocols/" />
20	<meta property="og:site_name" content="Contract Testing" />
21	<meta property="article:publisher" content="https://www.facebook.com/ContractTesting/" />
22	<meta property="article:modified_time" content="2026-09-11T09:16:01+00:00" />
23	<meta property="og:image" content="https://www.contracttesting.com/wp-content/uploads/2012/02/lifecycle.jpg" />
24	<meta property="og:image:width" content="316" />
25	<meta property="og:image:height" content="285" />
26	<meta property="og:image:type" content="image/jpeg" />
27	<meta name="twitter:card" content="summary_large_image" />
28	<meta name="twitter:label1" content="Est. reading time" />
29	<meta name="twitter:data1" content="2 minutes" />
30	
30<script type="application/ld+json" class="yoast-schema-graph">{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.contracttesting.com\/proven-protocols\/","url":"https:\/\/www.contracttesting.com\/proven-protocols\/","name":"Proven Protocols - Contract Testing","isPartOf":{"@id":"https:\/\/www.contracttesting.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.contracttesting.com\/proven-protocols\/#primaryimage"},"image":{"@id":"https:\/\/www.contracttesting.com\/proven-protocols\/#primaryimage"},"thumbnailUrl":"https:\/\/www.contracttesting.com\/wp-content\/uploads\/2012\/02\/lifecycle.jpg","datePublished":"2012-02-17T15:37:31+00:00","dateModified":"2026-09-11T09:16:01+00:00","description":"Matrix Sciences Consumer Research utilizes proprietary technology and expert project management. Explore our refined protocols for product testing success.","breadcrumb":{"@id":"https:\/\/www.contracttesting.com\/proven-protocols\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.contracttesting.com\/proven-protocols\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.contracttesting.com\/proven-protocols\/#primaryimage","url":"https:\/\/www.contracttesting.com\/wp-content\/uploads\/2012\/02\/lifecycle.jpg","contentUrl":"https:\/\/www.contracttesting.com\/wp-content\/uploads\/2012\/02\/lifecycle.jpg","width":316,"height":285},{"@type":"BreadcrumbList","@id":"https:\/\/www.contracttesting.com\/proven-protocols\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.contracttesting.com\/"},{"@type":"ListItem","position":2,"name":"Proven Protocols"}]},{"@type":"WebSite","@id":"https:\/\/www.contracttesting.com\/#website","url":"https:\/\/www.contracttesting.com\/","name":"Contract Testing","description":"Proven Protocols. Superior Results.","publisher":{"@id":"https:\/\/www.contracttesting.com\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.contracttesting.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.contracttesting.com\/#organization","name":"Contract Testing","url":"https:\/\/www.contracttesting.com\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.contracttesting.com\/#\/schema\/logo\/image\/","url":"https:\/\/www.contracttesting.com\/wp-content\/uploads\/2017\/03\/CTI_logo_black-1.png","contentUrl":"https:\/\/www.contracttesting.com\/wp-content\/uploads\/2017\/03\/CTI_logo_black-1.png","width":4098,"height":762,"caption":"Contract Testing"},"image":{"@id":"https:\/\/www.contracttesting.com\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/ContractTesting\/","https:\/\/www.instagram.com\/contracttesting","https:\/\/www.linkedin.com\/company\/2857184\/"]}]}</script>
30
31	<!-- / Yoast SEO plugin. -->
32
33
34<link rel='dns-prefetch' href='//fonts.googleapis.com' />
35<link rel='dns-prefetch' href='//code.ionicframework.com' />
36<link href='https://fonts.gstatic.com' crossorigin rel='preconnect' />
37<link rel="alternate" type="application/rss+xml" title="Contract Testing &raquo; Feed" href="https://www.contracttesting.com/feed/" />
38<link rel="alternate" type="application/rss+xml" title="Contract Testing &raquo; Comments Feed" href="https://www.contracttesting.com/comments/feed/" />
39<link rel="alternate" type="application/rss+xml" title="Contract Testing &raquo; Proven Protocols Comments Feed" href="https://www.contracttesting.com/proven-protocols/feed/" />
40<link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://www.contracttesting.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.contracttesting.com%2Fproven-protocols%2F" />
41<link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://www.contracttesting.com/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fwww.contracttesting.com%2Fproven-protocols%2F&#038;format=xml" />
42<link rel="preload" href="https://www.contracttesting.com/wp-content/plugins/bb-plugin/fonts/fontawesome/7.2.0/webfonts/fa-solid-900.woff2" as="font" type="font/woff2" crossorigin="anonymous">
43<link rel="preload" href="https://www.contracttesting.com/wp-content/plugins/bb-plugin/fonts/fontawesome/7.2.0/webfonts/fa-regular-400.woff2" as="font" type="font/woff2" crossorigin="anonymous">
44<style id="wp-img-auto-sizes-contain-inline-css">
45img:is([sizes=auto i],[sizes^="auto," i]){contain-intrinsic-size:3000px 1500px}
46/*# sourceURL=wp-img-auto-sizes-contain-inline-css */
47</style>
48<link rel='stylesheet' id='infinity-pro-css' href='https://www.contracttesting.com/wp-content/themes/infinity-pro/style.css?ver=1.0.0' media='all' />
49<style id="infinity-pro-inline-css">
50
51
52		a,
53		.entry-title a:focus,
54		.entry-title a:hover,
55		.featured-content .entry-meta a:hover,
56		.featured-content .entry-meta a:focus,
57		.front-page .genesis-nav-menu a:hover,
58		.front-page .genesis-nav-menu a:focus,
59		.front-page .offscreen-content-icon button:hover,
60		.front-page .offscreen-content-icon button:focus,
61		.front-page .white .genesis-nav-menu a:hover,
62		.front-page .white .genesis-nav-menu a:focus,
63		.genesis-nav-menu a:focus,
64		.genesis-nav-menu a:hover,
65		.genesis-nav-menu .current-menu-item > a,
66		.genesis-nav-menu .sub-menu .current-menu-item > a:focus,
67		.genesis-nav-menu .sub-menu .current-menu-item > a:hover,
68		.js nav button:focus,
69		.js .menu-toggle:focus,
70		.offscreen-content button:hover,
71		.offscreen-content-icon button:hover,
72		.site-footer a:hover,
73		.site-footer a:focus {
74			color: #d94f00;
75		}
76
77		button,
78		input[type="button"],
79		input[type="reset"],
80		input[type="select"],
81		input[type="submit"],
82		.button,
83		.enews-widget input:hover[type="submit"],
84		.footer-widgets .button:hover {
85			background-color: #d94f00;
86		}
87
88		
89/*# sourceURL=infinity-pro-inline-css */
90</style>
91<style id="wp-emoji-styles-inline-css">
92
93	img.wp-smiley, img.emoji {
94		display: inline !important;
95		border: none !important;
96		box-shadow: none !important;
97		height: 1em !important;
98		width: 1em !important;
99		margin: 0 0.07em !important;
100		vertical-align: -0.1em !important;
101		background: none !important;
102		padding: 0 !important;
103	}
104/*# sourceURL=wp-emoji-styles-inline-css */
105</style>
106<style id="wp-block-library-inline-css">
107:root{--wp-block-synced-color:#7a00df;--wp-block-synced-color--rgb:122,0,223;--wp-bound-block-color:var(--wp-block-synced-color);--wp-editor-canvas-background:#ddd;--wp-admin-theme-color:#007cba;--wp-admin-theme-color--rgb:0,124,186;--wp-admin-theme-color-darker-10:#006ba1;--wp-admin-theme-color-darker-10--rgb:0,107,160.5;--wp-admin-theme-color-darker-20:#005a87;--wp-admin-theme-color-darker-20--rgb:0,90,135;--wp-admin-border-width-focus:2px}@media (min-resolution:192dpi){:root{--wp-admin-border-width-focus:1.5px}}.wp-element-button{cursor:pointer}:root .has-very-light-gray-background-color{background-color:#eee}:root .has-very-dark-gray-background-color{background-color:#313131}
107:root .has-very-light-gray-color{color:#eee}:root .has-very-dark-gray-color{color:#313131}:root .has-vivid-green-cyan-to-vivid-cyan-blue-gradient-background{background:linear-gradient(135deg,#00d084,#0693e3)}:root .has-purple-crush-gradient-background{background:linear-gradient(135deg,#34e2e4,#4721fb 50%,#ab1dfe)}:root .has-hazy-dawn-gradient-background{background:linear-gradient(135deg,#faaca8,#dad0ec)}:root .has-subdued-olive-gradient-background{background:linear-gradient(135deg,#fafae1,#67a671)}:root .has-atomic-cream-gradient-background{background:linear-gradient(135deg,#fdd79a,#004a59)}:root .has-nightshade-gradient-background{background:linear-gradient(135deg,#330968,#31cdcf)}:root .has-midnight-gradient-background{background:linear-gradient(135deg,#020381,#2874fc)}:root{--wp--preset--font-size--normal:16px;--wp--preset--font-size--huge:42px}.has-regular-font-size{font-size:1em}.has-larger-font-size{font-size:2.625em}.has-normal-font-size{font-size:var(--wp--preset--font-size--normal)}.has-huge-font-size{font-size:var(--wp--preset--font-size--huge)}:root .has-text-align-center{text-align:center}:root .has-text-align-left{text-align:left}:root .has-text-align-right{text-align:right}.has-fit-text{white-space:nowrap!important}#end-resizable-editor-section{display:none}.aligncenter{clear:both}.items-justified-left{justify-content:flex-start}.items-justified-center{justify-content:center}.items-justified-right{justify-content:flex-end}.items-justified-space-between{justify-content:space-between}.screen-reader-text{word-wrap:normal!important;border:0;clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-break:normal!important}.screen-reader-text:focus{background-color:#ddd;clip-path:none;color:#444;display:block;font-size:1em;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}html :where(.has-border-color){border-style:solid}html :where([style^=border-color],[style*=";border-color"],[style*="; border-color"]){border-style:solid}html :where([style^=border-top-color],[style*=";border-top-color"],[style*="; border-top-color"]){border-top-style:solid}html :where([style^=border-right-color],[style*=";border-right-color"],[style*="; border-right-color"]){border-right-style:solid}html :where([style^=border-bottom-color],[style*=";border-bottom-color"],[style*="; border-bottom-color"]){border-bottom-style:solid}html :where([style^=border-left-color],[style*=";border-left-color"],[style*="; border-left-color"]){border-left-style:solid}html :where([style^=border-width],[style*=";border-width"],[style*="; border-width"]){border-style:solid}html :where([style^=border-top-width],[style*=";border-top-width"],[style*="; border-top-width"]){border-top-style:solid}html :where([style^=border-right-width],[style*=";border-right-width"],[style*="; border-right-width"]){border-right-style:solid}html :where([style^=border-bottom-width],[style*=";border-bottom-width"],[style*="; border-bottom-width"]){border-bottom-style:solid}html :where([style^=border-left-width],[style*=";border-left-width"],[style*="; border-left-width"]){border-left-style:solid}html :where(img[class*=wp-image-]){height:auto;max-width:100%}:where(figure){margin:0 0 1em}html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:var(--wp-admin--admin-bar--height,0px)}@media screen and (max-width:600px){html :where(.is-position-sticky){--wp-admin--admin-bar--position-offset:0px}}
108
109/*# sourceURL=/wp-includes/css/dist/block-library/common.min.css */
110</style>
111<style id="classic-theme-styles-inline-css">
112/*! This file is auto-generated */
113.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
114/*# sourceURL=/wp-includes/css/classic-themes.min.css */
115</style>
116
117<style id="global-styles-inline-css">
118:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgb(6,147,227) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgb(252,185,
1180) 0%,rgb(255,105,0) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgb(255,105,0) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgb(255, 255, 255), 6px 6px rgb(0, 0, 0);--wp--preset--shadow--crisp: 6px 6px 0px rgb(0, 0, 0);}.wp-block-button{--wp--preset--dimension--25: 25%;--wp--preset--dimension--50: 50%;--wp--preset--dimension--75: 75%;--wp--preset--dimension--100: 100%;}:where(body) { margin: 0; }:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}body{padding-top: 0px;padding-right: 0px;padding-bottom: 0px;padding-left: 0px;}:root :where(.wp-element-button, .wp-block-button__link){background-color: #32373c;border-width: 0;color: #fff;font-family: inherit;font-size: inherit;font-style: inherit;font-weight: inherit;letter-spacing: inherit;line-height: inherit;padding-top: calc(0.667em + 2px);padding-right: calc(1.333em + 2px);padding-bottom: calc(0.667em + 2px);padding-left: calc(1.333em + 2px);text-decoration: none;text-transform: inherit;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}
118.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
119/*# sourceURL=global-styles-inline-css */
120</style>
121
122<link rel='stylesheet' id='fl-builder-layout-13-css' href='https://www.contracttesting.com/wp-content/uploads/bb-plugin/cache/13-layout.css?ver=3b2d2c25c4a4a2f16ec2bdefd6b9be2f' media='all' />
123<link rel='stylesheet' id='contact-form-7-css' href='https://www.contracttesting.com/wp-content/plugins/contact-form-7/includes/css/styles.css?ver=6.1.7' media='all' />
124<link rel='stylesheet' id='cookie-notice-front-css' href='https://www.contracttesting.com/wp-content/plugins/cookie-notice/css/front.min.css?ver=3.1.9' media='all' />
125<link rel='stylesheet' id='wpml-legacy-horizontal-list-0-css' href='https://www.contracttesting.com/wp-content/plugins/sitepress-multilingual-cms/templates/language-switchers/legacy-list-horizontal/style.min.css?ver=1' media='all' />
126<link rel='stylesheet' id='font-awesome-5-css' href='https://www.contracttesting.com/wp-content/plugins/bb-plugin/fonts/fontawesome/7.2.0/css/all.min.css?ver=2.11.0.3' media='all' />
127<link rel='stylesheet' id='fl-builder-layout-bundle-b265b1380fb0f32cf8b9459f3a28c58b-css' href='https://www.contracttesting.com/wp-content/uploads/bb-plugin/cache/b265b1380fb0f32cf8b9459f3a28c58b-layout-bundle.css?ver=2.11.0.3-1.6' media='all' />
128<link rel='stylesheet' id='infinity-fonts-css' href='//fonts.googleapis.com/css?family=Cormorant+Garamond:400,400i,700|Raleway:700|Merriweather+Sans|Muli&#038;ver=1.0.0' media='all' />
129<link rel='stylesheet' id='infinity-ionicons-css' href='//code.ionicframework.com/ionicons/2.0.1/css/ionicons.min.css?ver=1.0.0' media='all' />
130<link rel='stylesheet' id='simple-social-icons-font-css' href='https://www.contracttesting.com/wp-content/plugins/simple-social-icons/css/style.css?ver=4.0.0' media='all' />
131<link rel='stylesheet' id='pp-animate-css' href='https://www.contracttesting.com/wp-content/plugins/bbpowerpack/assets/css/animate.min.css?ver=3.5.1' media='all' />
132<link rel='stylesheet' id='fl-builder-google-fonts-99ffaa26d28bd062f83cbc723d5c68ba-css' href='//fonts.googleapis.com/css?family=Raleway:700&#038;ver=7.1' media='all' />
133<script id="wpml-cookie-js-extra">
134var wpml_cookies = {"wp-wpml_current_language":{"value":"en","expires":1,"path":"/"}};
135var wpml_cookies = {"wp-wpml_current_language":{"value":"en","expires":1,"path":"/"}};
136//# sourceURL=wpml-cookie-js-extra
137</script>
vendor: 1 bytes, line 137
137
138<script data-wp-strategy="defer" defer id="wpml-cookie-js" src="https://www.contracttesting.com/wp-content/plugins/sitepress-multilingual-cms/res/js/cookies/language-cookie.js?ver=497000"></script>
vendor: 1 bytes, line 138
138
139<script id="jquery-core-js" src="https://www.contracttesting.com/wp-includes/js/jquery/jquery.min.js?ver=3.7.1"></script>
vendor: 1 bytes, line 139
139
140<script id="jquery-migrate-js" src="https://www.contracttesting.com/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1"></script>
vendor: 1 bytes, line 140
140
141<script id="cookie-notice-front-js-before">
142var cnArgs = {"ajaxUrl":"https:\/\/www.contracttesting.com\/wp-admin\/admin-ajax.php","nonce":"8c16efbee8","hideEffect":"fade","position":"bottom","onScroll":false,"onScrollOffset":100,"onClick":false,"cookieName":"cookie_notice_accepted","cookieTime":2592000,"cookieTimeRejected":2592000,"globalCookie":false,"redirection":false,"cache":true,"revokeCookies":false,"revokeCookiesOpt":"automatic"};
143
144//# sourceURL=cookie-notice-front-js-before
145</script>
vendor: 1 bytes, line 145
145
146<script id="cookie-notice-front-js" src="https://www.contracttesting.com/wp-content/plugins/cookie-notice/js/front.min.js?ver=3.1.9"></script>
146
147<link rel="https://api.w.org/" href="https://www.contracttesting.com/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://www.contracttesting.com/wp-json/wp/v2/pages/13" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://www.contracttesting.com/xmlrpc.php?rsd" />
148<meta name="generator" content="WordPress 7.1" />
149<link rel='shortlink' href='https://www.contracttesting.com/?p=13' />
150<meta name="generator" content="WPML ver:4.9.7 stt:1,4;" />
151		
151<script>
152			var bb_powerpack = {
153				version: '2.42.2',
154				getAjaxUrl: function() { return atob( 'aHR0cHM6Ly93d3cuY29udHJhY3R0ZXN0aW5nLmNvbS93cC1hZG1pbi9hZG1pbi1hamF4LnBocA==' ); },
155				callback: function() {},
156				mapMarkerData: {},
157				post_id: '13',
158				search_term: '',
159				current_page: 'https://www.contracttesting.com/proven-protocols/',
160				conditionals: {
161					is_front_page: false,
162					is_home: false,
163					is_archive: false,
164					current_post_type: '',
165					is_tax: false,
166										is_author: false,
167					current_author: false,
168					is_search: false,
169									}
170			};
171					</script>
171
172		
173<!--BEGIN: TRACKING CODE MANAGER (v2.8.0) BY INTELLYWP.COM IN HEAD//-->
174<script type="text/javascript">
175(function(a,e,c,f,g,h,b,d){var k={ak:"842018445",cl:"qf_qCJLl8HkQjd3AkQM",autoreplace:"905-456-0783"};a[c]=a[c]||function(){(a[c].q=a[c].q||[]).push(arguments)};a[g]||(a[g]=k.ak);b=e.createElement(h);b.async=1;b.src="//www.gstatic.com/wcm/loader.js";d=e.getElementsByTagName(h)[0];d.parentNode.insertBefore(b,d);a[f]=function(b,d,e){a[c](2,b,k,d,null,new Date,e)};a[f]()})(window,document,"_googWcmImpl","_googWcmGet","_googWcmAk","script");
176</script>
vendor: 2 bytes, line 176
176
177<script type="text/javascript">
178(function(a,e,c,f,g,h,b,d){var k={ak:"842018445",cl:"zbhDCMKq6HkQjd3AkQM",autoreplace:"1-800-342-1825"};a[c]=a[c]||function(){(a[c].q=a[c].q||[]).push(arguments)};a[g]||(a[g]=k.ak);b=e.createElement(h);b.async=1;b.src="//www.gstatic.com/wcm/loader.js";d=e.getElementsByTagName(h)[0];d.parentNode.insertBefore(b,d);a[f]=function(b,d,e){a[c](2,b,k,d,null,new Date,e)};a[f]()})(window,document,"_googWcmImpl","_googWcmGet","_googWcmAk","script");
179</script>
179
180<!-- Google Tag Manager -->
181<script>
vendor: 331 bytes, lines 181-185
181(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
182new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
183j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
184'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
185})(window,document,'script','dataLayer','
185GTM-N4PL8Z9
vendor: 3 bytes, line 185
185');
185</script>
185
186<!-- End Google Tag Manager -->
187<!--END: https://wordpress.org/plugins/tracking-code-manager IN HEAD//--><link rel="pingback" href="https://www.contracttesting.com/xmlrpc.php" />
188<script>
189document.addEventListener( 'wpcf7mailsent', function( event ) {
190    location = 'https://www.contracttesting.com/contact-thank-you/';
191}, false );
192</script>
192<link rel="icon" href="https://www.contracttesting.com/wp-content/uploads/2020/03/cropped-Contract-Testing-Icon-32x32.png" sizes="32x32" />
193<link rel="icon" href="https://www.contracttesting.com/wp-content/uploads/2020/03/cropped-Contract-Testing-Icon-192x192.png" sizes="192x192" />
194<link rel="apple-touch-icon" href="https://www.contracttesting.com/wp-content/uploads/2020/03/cropped-Contract-Testing-Icon-180x180.png" />
195<meta name="msapplication-TileImage" content="https://www.contracttesting.com/wp-content/uploads/2020/03/cropped-Contract-Testing-Icon-270x270.png" />
196<style id="wp-custom-css">
197img.fl-photo-img.wp-image-1929.size-full {
198    width: auto!important;
199}
200
201.fl-builder-content .fl-node-58d1936e7d503 a {
202       font-weight: 100!important;
203}
204
205.blog-featured-image {
206    height: 270px!important;
207}
208
209.button-black {
210border: 2px solid #d94f00 !important;
211color: #d94f00 !important;
212}
213
214.button-black:hover {
215background-color: #d94f00 !important;
216color: #fff !important;
217}
218
219.fl-menu a {
220color: #333333 !important;
221}
222
223.fl-menu a:hover {
224color: #d94f00 !important;
225}
226div.footer-width-fixer .fl-menu a {
227color: #d94f00 !important;
228}
229
230div.footer-width-fixer .fl-menu a:hover {
231color: #FAAF32 !important;
232}
233
234.button {
235/* border: 2px solid #d94f00 !important; */
236	border: 2px solid #D14500 !important;
237}
238
239.button:hover {
240border: 2px solid #333 !important;
241}
242
243.gform_button {
244background-color: #d94f00 !important;
245}
246
247.gform_button:hover {
248background-color: #333333 !important;
249border: 2px solid #333333 !important;
250}
251
252p a {
253color: #d94f00 !important;
254}
255
256p a:hover {
257color: #FAAF32 !important;
258}
259
260.fl-accordion-button-label {
261color: #999999 !important;
262}
263
264.fl-accordion-small .fl-accordion-content li, .fl-accordion-small .fl-accordion-content body {
265color: #999999 !important;
266}
267
268/* Added 7-27-2026 */
269/* .test {
270		filter: brightness(0.90) contrast(1.08);
271} */
272
273/* .dred-text {
274	color: #f04123 !important;
275}
276
277.dred-bg {
278	background-color: #f04123 !important;
279}
280
281#header-row .fl-html a:nth-child(1) {
282	color: #f04123 !important;
283}
284
285
286#header-row .fl-html a:nth-child(2) {
287	border-color: #f04123 !important;
288	color: #f04123 !important;
289}
290
291#header-row .fl-html a:nth-child(3) {
292	color: #fff !important;
293	background-color: #f04123 !important;
294	border-color: #f04123;
295}
296 */
297
298.fl-node-5890db70088f3 a,
299.fl-node-589b341e9da00 .fl-row-content-wrap,
300.fl-node-5ae9f508c4c74 .fl-node-content .fl-rich-text a,
301.fl-node-5ae9f508c4c74 p a,
302.fl-node-588fb66f4f8da .fl-button-has-icon a,
303.fl-node-content a,
304.fl-row-content-wrap,
305.search-form-submit,
306.entry-content p a {
307/* 	filter: brightness(0.90) contrast(1.08); */
308	filter: contrast(1.08);
309}
310
311.fl-node-5890d91c41adf .fl-accordion-button a {
312	filter: contrast(1.08);
313}
314
315#header-row .fl-node-eobhiwq9y2u0 .fl-html a {
316	filter: contrast(1) !important;	
317}
318
319/* .fl-button-wrap a, */
320.fl-button-wrap i {
321		filter: brightness(1) contrast(1);
322} 
323
324.fl-button-wrap a {
325	background: #D14500 !important;
326}
327
328/* accordion */
329.fl-node-58d9634b804ef .pp-accordion-item span {
330	filter: contrast(1.05);
331}
332
333.fl-node-589b341e9da00 > .fl-row-content-wrap {
334/* 	background: #C74200; */
335	background: #D14500;
336}
337
338#cn-notice-buttons button {
339/* 	background: #C74200 !important; */
340	background: #D14500 !important;
341}
342
343.fl-node-58d15199f18c2 span,
344.fl-node-58d15199f18f7 span,
345.fl-node-58d153ab820e8 a,
346.fl-node-58d153ab820e8 a .fl-accordion-button-icon,
347.fl-node-58ff6f92c3199 a,
348.fl-node-58ff6f92c3199 a .fl-accordion-button-icon {
349	color: #707070 !important;
350}
351
352#menu-item-1993 .fl-has-submenu-container {
353	display: inline-block !important;
354}
355
356#menu-item-1993 .fl-has-submenu-container button {
357	position: absolute;
358	right: 0;
359	top: 50%;
360	height: 100%;
361	transform: translateY(-50%);
362}
363
364header {
365	position: relative;
366	z-index: 100;
367}
368
369.fl-node-wbl59rox74fn .fl-html a:nth-child(1) {
370	background: #D14500 !important;
371}
372
373.fl-node-wbl59rox74fn .fl-html a:nth-child(1):hover {
374	background: #222 !important;
375}
376
377.fl-node-wbl59rox74fn .fl-html a:nth-child(2) {
378	color: #D14500 !important;
379}
380
381.fl-node-wbl59rox74fn .fl-html a:nth-child(2):hover {
382	background: #D14500 !important;
383	color: #fff !important;
384	border: solid 2px #D14500 !important;
385}
386
387#francais a {
388	background: none !important;
389	color: #D14500 !important;
390}
391menu-footer-about-menu
392.fl-callout-title a,
393.fl-rich-text a,
394.fl-heading .fl-heading-text,
395#menu-footer-existing-tester-menu li a,
396#menu-footer-about-menu li a,
397.fl-callout-title-text {
398	color: #D14500 !important;
399}
400
401.menu-main-menu ul li a:focus-visible {
402	color: #D14500;
403/* 	color: #e1300f; */
404}
405
406/* #F55100 */
407.fl-node-bcqs2x5d6pwe .fl-heading .fl-heading-text,
408.fl-node-ftr0x62mdw79 .fl-heading .fl-heading-text,
409.fl-node-vdk6ngcwf3xl .fl-heading .fl-heading-text,
410.fl-node-1wkc5r0m2gnv .fl-heading .fl-heading-text
411{
412	color: #F55100 !important;
413}
414
415#cn-close-notice {
416    width: 50px !important;
417    height: 50px !important;
418    min-width: 50px !important;
419    min-height: 50px !important;
420    padding: 0 !important;
421    box-sizing: border-box;
422}
423
424.fl-node-58d14cb0ac637 .fl-accordion-item ul {
425	margin: 0 0 0 1.6em;
426	list-style: none;
427}
428
429.fl-node-58d14cb0ac637 .fl-accordion-item ul li {
430	border-bottom: none;
431	color: #000 !important;
432	text-align: left !important;
433}
434
435.fl-node-58d14cb0ac637 .fl-accordion-item ul li p {
436	text-align: left;
437}
438
439.fl-node-58d14cb0ac637 .fl-accordion-item p,
440.fl-node-58d14cb0ac637 .fl-accordion-item ul li p {
441	margin-bottom: 0.8em;
442	color: #000;
443}
444
445
446/* .hidden-heading {
447		position: absolute !important;
448    width: 1px !important;
449    height: 1px !important;
450    padding: 0 !important;
451    margin: -1px !important;
452    overflow: hidden !important;
453    clip: rect(0, 0, 0, 0) !important;
454    white-space: nowrap !important;
455    border: 0 !important;
456} */
457
458/* added 10-5-2026 */
459
460</style>
461<link rel='stylesheet' id='fl-builder-wp-editor-css' href='https://www.contracttesting.com/wp-content/plugins/bb-plugin/css/build/wp-editor.bundle.min.css?ver=2.11.0.3' media='all' />
462
463</head>
464<body class="wp-singular page-template page-template-page_full_width page-template-page_full_width-php page page-id-13 wp-theme-genesis wp-child-theme-infinity-pro fl-builder fl-builder-2-11-0-3 fl-themer-1-6 fl-no-js cookies-not-set fl-theme-builder-header fl-theme-builder-header-new-header fl-theme-builder-footer fl-theme-builder-footer-new-footer header-image header-full-width full-width-content genesis-breadcrumbs-hidden full-width">
465<!--BEGIN: TRACKING CODE MANAGER (v2.8.0) BY INTELLYWP.COM IN BODY//-->
466<!-- Google Tag Manager (noscript) -->
vendor: 69 bytes, lines 466-467
466
467<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
467GTM-N4PL8Z9
vendor: 84 bytes, line 467
467" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
468<!-- End Google Tag Manager (noscript) -->
469<!--END: https://wordpress.org/plugins/tracking-code-manager IN BODY//--><div class="site-container"><header class="fl-builder-content fl-builder-content-3017 fl-builder-global-templates-locked" data-post-id="3017" data-type="header" data-sticky="0" data-sticky-on="" data-sticky-breakpoint="medium" data-shrink="0" data-overlay="0" data-overlay-bg="transparent" data-shrink-image-height="50px" role="banner" itemscope="itemscope" itemtype="http://schema.org/WPHeader"><div id="header-row" class="fl-row fl-row-full-width fl-row-bg-none fl-node-378dfi0log2r fl-row-default-height fl-row-align-center" data-node="378dfi0log2r">
470	<div class="fl-row-content-wrap">
471						<div class="fl-row-content fl-row-full-width fl-node-content">
472		
473<div class="fl-col-group fl-node-wk532zsy7m96 fl-col-group-equal-height fl-col-group-align-center fl-col-group-custom-width" data-node="wk532zsy7m96">
474			<div class="fl-col fl-node-f05ayon93dke fl-col-bg-color fl-col-small fl-col-small-custom-width" data-node="f05ayon93dke">
475	<div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-vc6lqmwp495z" data-node="vc6lqmwp495z" aria-label="Photo">
476	<div class="fl-module-content fl-node-content">
477		<div role="figure" class="fl-photo fl-photo-align-left" itemscope itemtype="https://schema.org/ImageObject">
478	<div class="fl-photo-content fl-photo-img-png">
479				<a href="https://www.contracttesting.com/" target="_self" itemprop="url">
480					<img loading="lazy" decoding="async" class="fl-photo-img wp-image-2916 size-full" src="https://www.contracttesting.com/wp-content/uploads/2021/09/matrix_logo-retina.png" alt="Matrix Logo" height="118" width="226" title="matrix_logo-retina"  data-no-lazy="1" itemprop="image" />
481							</a>
482					</div>
483	</div>
484	</div>
485</div>
486</div>
487</div>
488			<div class="fl-col fl-node-mbe2oyz9tf5c fl-col-bg-color fl-col-small fl-col-small-custom-width" data-node="mbe2oyz9tf5c">
489	<div class="fl-col-content fl-node-content"><div class="fl-module fl-module-menu fl-node-cut8jelrm42o main-menu" data-node="cut8jelrm42o" aria-label="Menu">
490	<div class="fl-module-content fl-node-content">
491		<div class="fl-menu fl-menu-responsive-toggle-mobile">
492	<button class="fl-menu-mobile-toggle hamburger-label fl-content-ui-button" aria-haspopup="menu" aria-label="Menu"><span class="fl-menu-icon svg-container"><svg version="1.1" class="hamburger-menu" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 512 512">
493<rect class="fl-hamburger-menu-top" width="512" height="102"/>
494<rect class="fl-hamburger-menu-middle" y="205" width="512" height="102"/>
495<rect class="fl-hamburger-menu-bottom" y="410" width="512" height="102"/>
496</svg>
497</span><span class="fl-menu-mobile-toggle-label" aria-haspopup="menu" aria-label="Menu">Menu</span></button>	<div class="fl-clear"></div>
498	<nav aria-label="Navigation Menu" itemscope="itemscope" itemtype="https://schema.org/SiteNavigationElement"><ul id="menu-main-menu" class="menu fl-menu-horizontal fl-toggle-arrows"><li id="menu-item-1993" class="menu-item menu-item-type-custom menu-item-object-custom current-menu-ancestor current-menu-parent menu-item-has-children fl-has-submenu"><div class="fl-has-submenu-container"><a href="https://contracttesting.com">About</a><span class="fl-menu-toggle fl-content-ui-button" aria-label="About submenu toggle" role="button" tabindex="0" aria-control="sub-menu-1993" aria-expanded="false"></span></div><ul id="sub-menu-1993" class="sub-menu">	<li id="menu-item-883" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.contracttesting.com/services/">Services</a></li>	<li id="menu-item-1996" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-13 current_page_item"><a href="https://www.contracttesting.com/proven-protocols/" aria-current="page">Proven Protocols</a></li>	<li id="menu-item-1994" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.contracttesting.com/case-studies/">Case Studies</a></li>	<li id="menu-item-1998" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.contracttesting.com/locations/">Locations</a></li></ul></li><li id="menu-item-3055" class="menu-item menu-item-type-custom menu-item-object-custom">
498<a href="https://connect.contracttesting.com/ctimvc/Account/Login?ReturnUrl=%2fctimvc&#038;_gl=1*1k3cjn2*_ga*NjUyODQxODA1LjE3MTM5NjYxNTE.*_ga_MEH1LPRD52*MTcxNjQ4NDk5NS4xNC4wLjE3MTY0ODQ5OTkuMC4wLjA.">Login</a></li><li id="menu-item-3056" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="https://connect.contracttesting.com/ctimvc/Account/Register?_gl=1*mn1o8q*_ga*NjUyODQxODA1LjE3MTM5NjYxNTE.*_ga_MEH1LPRD52*MTcxNjQ4ODAyMy4xNS4xLjE3MTY0ODgwNTQuMC4wLjA.">Register</a></li><li id="menu-item-3057" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="https://www.contracttesting.com/?lang=fr">Francais</a></li><li id="menu-item-887" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.contracttesting.com/contact/">Contact</a></li></ul></nav></div>
499	</div>
500</div>
501</div>
502</div>
503			<div class="fl-col fl-node-wbl59rox74fn fl-col-bg-color fl-col-small" data-node="wbl59rox74fn">
504	<div class="fl-col-content fl-node-content"><div id="naven" class="fl-module fl-module-html fl-node-eobhiwq9y2u0 fl-visible-desktop fl-visible-large fl-visible-medium" data-node="eobhiwq9y2u0" aria-label="HTML">
505	<div class="fl-module-content fl-node-content">
506		<div class="fl-html">
507	<a style="float: right; margin-left: 10px;" class="button" href="http://connect.contracttesting.com/ctimvc/Account/Login?ReturnUrl=%2fctimv
507c">Login</a>
508
509<a style="float: right;margin-left: 10px;" class="button button-black" href="https://connect.contracttesting.com/ctimvc/Account/Register?">Become a Tester</a>
510<div style="display: inline-block; float: right;" id='francais'><a href="?lang=fr">FR</a></div></div>
511	</div>
512</div>
513</div>
514</div>
515	</div>
516		</div>
517	</div>
518</div>
519</header><div class="site-inner"><div class="content-sidebar-wrap"><main class="content"><article class="post-13 page type-page status-publish has-post-thumbnail entry" aria-label="Proven Protocols"><div class="entry-content"><div class="fl-builder-content fl-builder-content-13 fl-builder-content-primary fl-builder-global-templates-locked" data-post-id="13"><div class="fl-row fl-row-fixed-width fl-row-bg-photo fl-node-5ae9f8070053d fl-row-default-height fl-row-align-center" data-node="5ae9f8070053d">
520	<div class="fl-row-content-wrap">
521						<div class="fl-row-content fl-row-fixed-width fl-node-content">
522		
523<div class="fl-col-group fl-node-5ae9f8070323f" data-node="5ae9f8070323f">
524			<div class="fl-col fl-node-5ae9f80703304 fl-col-bg-color" data-node="5ae9f80703304">
525	<div class="fl-col-content fl-node-content"><div class="fl-module fl-module-photo fl-node-5ae9f9849d7e1" data-node="5ae9f9849d7e1" aria-label="Photo">
526	<div class="fl-module-content fl-node-content">
527		<div role="figure" class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
528	<div class="fl-photo-content fl-photo-img-png">
529					<img loading="lazy" decoding="async" class="fl-photo-img wp-image-1924 size-full" src="https://www.contracttesting.com/wp-content/uploads/2018/05/Proven-Protocols-Header.png" alt="Row of cleaning supplies, paper rolls, a burger, fries, donuts, wine, coffee, and chocolate." height="200" width="1000"  itemprop="image" srcset="https://www.contracttesting.com/wp-content/uploads/2018/05/Proven-Protocols-Header.png 1000w, https://www.contracttesting.com/wp-content/uploads/2018/05/Proven-Protocols-Header-300x60.png 300w, https://www.contracttesting.com/wp-content/uploads/2018/05/Proven-Protocols-Header-768x154.png 768w" sizes="auto, (max-width: 1000px) 100vw, 1000px" />
530					</div>
531	</div>
532	</div>
533</div>
534</div>
535</div>
536	</div>
537		</div>
538	</div>
539</div>
540<div class="fl-row fl-row-fixed-width fl-row-bg-none fl-node-58e66cb990d32 fl-row-default-height fl-row-align-center" data-node="58e66cb990d32">
541	<div class="fl-row-content-wrap">
542						<div class="fl-row-content fl-row-fixed-width fl-node-content">
543		
544<div class="fl-col-group fl-node-58e66cb9916c5" data-node="58e66cb9916c5">
545			<div class="fl-col fl-node-58e66cb991908 fl-col-bg-color fl-col-has-cols" data-node="58e66cb991908">
546	<div class="fl-col-content fl-node-content">
547<div class="fl-col-group fl-node-58e66cc7525f4 fl-col-group-nested" data-node="58e66cc7525f4">
548			<div class="fl-col fl-node-58e66cc752861 fl-col-bg-color fl-col-small" data-node="58e66cc752861">
549	<div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-58e66d16ad818" data-node="58e66d16ad818" aria-label="Heading">
550	<div class="fl-module-content fl-node-content">
551		<h1 class="fl-heading">
552			<span class="fl-heading-text">Proven Protocols</span>
553	</h1>
554	</div>
555</div>
556<div class="fl-module fl-module-rich-text fl-node-58e66cb993191" data-node="58e66cb993191" aria-label="Text Editor">
557	<div class="fl-module-content fl-node-content">
558		<div class="fl-rich-text">
559	<h2>1. The RIGHT processes, standards and controls</h2>
560<p>From beginning to end, every step in our product research process has been documented and is rigorously adhered to. Each step is subjected to pre-established standards and controls. This ensures that all research is completed in accordance with our specifications and established industry standards.</p>
561<h2>2. The RIGHT people</h2>
562<p>You have access to our superior team of sensory trained project managers, fieldwork technicians and data analysts across the United States and Canada. They, along with our knowledgeable and experienced technical administrators and support personnel, ensure that your projects are well designed and properly executed, and 
562your results are properly analyzed and consulted on.</p>
563<h2>3. The RIGHT technology</h2>
564<p>MSCR is an acknowledged industry leader for its use of proprietary technology to enhance the speed and accuracy of the research process. We have developed our own automated, online recruiting system, our own data capture system as well as our own automated reporting system and we rely extensively on technology solutions for database development and project management.</p>
565<p>Our Proven Protocols have been continuously refined to reflect the latest advances in product research—and the input of our clients.</p>
566</div>
567	</div>
568</div>
569</div>
570</div>
571			<div class="fl-col fl-node-58e66cc75289d fl-col-bg-color fl-col-small" data-node="58e66cc75289d">
572	<div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-58e66ce5a6fd4" data-node="58e66ce5a6fd4" aria-label="Heading">
573	<div class="fl-module-content fl-node-content">
574		<h2 class="fl-heading">
575			<span class="fl-heading-text">MSCR Project Success Life Cycle</span>
576	</h2>
577	</div>
578</div>
579<div class="fl-module fl-module-photo fl-node-58e66cd1923ee" data-node="58e66cd1923ee" aria-label="Photo">
580	<div class="fl-module-content fl-node-content">
581		<div role="figure" class="fl-photo fl-photo-align-center" itemscope itemtype="https://schema.org/ImageObject">
582	<div class="fl-photo-content fl-photo-img-png">
583					<img loading="lazy" decoding="async" class="fl-photo-img wp-image-2755 size-full" src="https://www.contracttesting.com/wp-content/uploads/2020/03/Wheel-English-600.png" alt="7-step circular process diagram for Superior Products, from Project Initiation to Analysis." height="600" width="600"  itemprop="image" srcset="https://www.contracttesting.com/wp-content/uploads/2020/03/Wheel-English-600.png 600w, https://www.contracttesting.com/wp-content/uploads/2020/03/Wheel-English-600-300x300.png 300w, https://www.contracttesting.com/wp-content/uploads/2020/03/Wheel-English-600-150x150.png 150w, https://www.contracttesting.com/wp-content/uploads/2020/03/Wheel-English-600-75x75.png 75w" sizes="auto, (max-width: 600px) 100vw, 600px" />
584					</div>
585	</div>
586	</div>
587</div>
588</div>
589</div>
590	</div>
591</div>
592</div>
593	</div>
594		</div>
595	</div>
596</div>
597</div></div></article></main></div></div><footer class="fl-builder-content fl-builder-content-3027 fl-builder-global-templates-locked" data-post-id="3027" data-type="footer" itemscope="itemscope" itemtype="http://schema.org/WPFooter"><div class="fl-row fl-row-full-width fl-row-bg-color fl-node-pw5gr3aqboxv fl-row-default-height fl-row-align-center" data-node="pw5gr3aqboxv">
598	<div class="fl-row-content-wrap">
599						<div class="fl-row-content fl-row-fixed-width fl-node-content">
600		
601<div class="fl-col-group fl-node-6hwgupo8vs03" data-node="6hwgupo8vs03">
602			<div class="fl-col fl-node-bcqs2x5d6pwe fl-col-bg-color fl-col-small" data-node="bcqs2x5d6pwe">
603	<div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-ylx6zns0bgjm" data-node="ylx6zns0bgjm" aria-label="Heading">
604	<div class="fl-module-content fl-node-content">
605		<h2 class="fl-heading">
606			<span class="fl-heading-text">Matrix Sciences Consumer Research</span>
607	</h2>
608	</div>
609</div>
610<div class="fl-module fl-module-rich-text fl-node-5dkm1zn9w6vo" data-node="5dkm1zn9w6vo" aria-label="Text Editor">
611	<div class="fl-module-content fl-node-content">
612		<div class="fl-rich-text">
613	<p>Formerly Contract Testing (CTI), Matrix Sciences Consumer Research is a product research company, connecting companies who want their products tested by real consumers. We are an industry leader, working with major brand names, and have been in business for more than 30 years.</p>
614<p><a href="https://matrixsciences.com/" target="_blank" rel="noopener"><img decoding="async" src="https://www.contracttesting.com/wp-content/uploads/2020/03/MatrixSciences-Logo-Light.png" alt="Matrix Sciences Logo" /></a></p>
615</div>
616	</div>
617</div>
618</div>
619</div>
620			<div class="fl-col fl-node-69brlm12ty5k fl-col-bg-color fl-col-small" data-node="69brlm12ty5k">
621	<div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-ftr0x62mdw79" data-node="ftr0x62mdw79" aria-label="Heading">
622	<div class="fl-module-content fl-node-content">
623		<h2 class="fl-heading">
624			<span class="fl-heading-text">About</span>
625	</h2>
626	</div>
627</div>
628<div class="fl-module fl-module-menu fl-node-ufobipys1nzh footer-width-fixer" data-node="ufobipys1nzh" aria-label="Menu">
629	<div class="fl-module-content fl-node-content">
630		<div class="fl-menu">
631		<div class="fl-clear"></div>
632	<nav aria-label="Navigation Menu" itemscope="itemscope" itemtype="https://schema.org/SiteNavigationElement"><ul id="menu-footer-about-menu" class="menu fl-menu-vertical fl-toggle-none"><li id="menu-item-1093" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.contracttesting.com/services/">Services</a></li><li id="menu-item-1064" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-13 current_page_item"><a href="https://www.contracttesting.com/proven-protocols/" aria-current="page">Proven Protocols</a></li><li id="menu-item-1063" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.contracttesting.com/associations/">Associations</a></li><li id="menu-item-1066" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.contracttesting.com/locations/">Locations</a></li><li id="menu-item-1182" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.contracttesting.com/case-studies/">Case Studies</a></li></ul></nav></div>
633	</div>
634</div>
635</div>
636</div>
637			<div class="fl-col fl-node-jlmvnoka7fq1 fl-col-bg-color fl-col-small" data-node="jlmvnoka7fq1">
638	<div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-vdk6ngcwf3xl" data-node="vdk6ngcwf3xl" aria-label="Heading">
639	<div class="fl-module-content fl-node-content">
640		<h2 class="fl-heading">
641			<span class="fl-heading-text">Testers</span>
642	</h2>
643	</div>
644</div>
645<div class="fl-module fl-module-menu fl-node-btmxjzcd9ur7 footer-width-fixer" data-node="btmxjzcd9ur7" aria-label="Menu">
646	<div class="fl-module-content fl-node-content">
647		<div class="fl-menu">
648		<div class="fl-clear"></div>
649	<nav aria-label="Navigation Menu" itemscope="itemscope" itemtype="https://schema.org/SiteNavigationElement"><ul id="menu-footer-existing-tester-menu" class="menu fl-menu-vertical fl-toggle-none"><li id="menu-item-1072" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home"><a href="https://www.contracttesting.com/">Become a Tester</a></li><li id="menu-item-1090" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.contracttesting.com/tester/faq/">FAQ</a></li><li id="menu-item-1068" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.contracttesting.com/tester/i-am-a-tester-now-what/">I am a Tester… Now What?</a></li><li id="menu-item-1070" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.contracttesting.com/tester/terms-conditions/">Terms &#038; Conditions</a></li><li id="menu-item-1081" class="menu-item menu-item-type-custom menu-item-object-custom">
649<a href="http://connect.contracttesting.com/ctimvc/Account/Login">Login</a></li></ul></nav></div>
650	</div>
651</div>
652</div>
653</div>
654			<div class="fl-col fl-node-pne8iv0b4yft fl-col-bg-color fl-col-small" data-node="pne8iv0b4yft">
655	<div class="fl-col-content fl-node-content"><div class="fl-module fl-module-heading fl-node-1wkc5r0m2gnv" data-node="1wkc5r0m2gnv" aria-label="Heading">
656	<div class="fl-module-content fl-node-content">
657		<h2 class="fl-heading">
658			<span class="fl-heading-text">Contact Us</span>
659	</h2>
660	</div>
661</div>
662<div class="fl-module fl-module-rich-text fl-node-wz4mky7ehst6" data-node="wz4mky7ehst6" aria-label="Text Editor">
663	<div class="fl-module-content fl-node-content">
664		<div class="fl-rich-text">
665	<p>119 West Drive<br />
666Brampton, ON L6T 2J6<br />
667Canada</p>
668<p>2776 Birchcrest Drive SE<br />
669Grand Rapids, MI 49506<br />
670United States</p>
671<p><a href="https://www.contracttesting.com/locations/">All locations</a></p>
672<p><strong>+1 (866) 297-3486</strong></p>
673<p>For more information <a href="mailto:[email protected]">[email protected]</a></p>
674</div>
675	</div>
676</div>
677</div>
678</div>
679	</div>
680		</div>
681	</div>
682</div>
683<div class="fl-row fl-row-full-width fl-row-bg-color fl-node-dh3gsv941kec fl-row-default-height fl-row-align-center" data-node="dh3gsv941kec">
684	<div class="fl-row-content-wrap">
685						<div class="fl-row-content fl-row-fixed-width fl-node-content">
686		
687<div class="fl-col-group fl-node-8uad971m2hxr" data-node="8uad971m2hxr">
688			<div class="fl-col fl-node-n1rc0em5j9ip fl-col-bg-color" data-node="n1rc0em5j9ip">
689	<div class="fl-col-content fl-node-content"><div class="fl-module fl-module-menu fl-node-b9ywtlp3a1v2" data-node="b9ywtlp3a1v2" aria-label="Menu">
690	<div class="fl-module-content fl-node-content">
691		<div class="fl-menu">
692		<div class="fl-clear"></div>
693	<nav aria-label="Navigation Menu" itemscope="itemscope" itemtype="https://schema.org/SiteNavigationElement"><ul id="menu-footer-menu" class="menu fl-menu-horizontal fl-toggle-none"><li id="menu-item-2936" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home"><a href="https://www.contracttesting.com/">Home</a></li><li id="menu-item-2377" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.contracttesting.com/contact/cookie-policy/">Cookie Policy</a></li><li id="menu-item-907" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.contracttesting.com/contact/privacy-policy/">Privacy Policy</a></li><li id="menu-item-1100" class="menu-item menu-item-type-post_type menu-item-object-page"><a href="https://www.contracttesting.com/contact/">Contact</a></li><li id="menu-item-1045" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-home"><a href="https://www.contracttesting.com/">Become a Tester</a></li><li id="menu-item-906" class="menu-item menu-item-type-custom menu-item-object-custom"><a href="http://connect.contracttesting.com/ctimvc/Account/Login">Login</a></li></ul></nav></div>
694	</div>
695</div>
696<div class="fl-module fl-module-rich-text fl-node-8q7us9l0m5i4" data-node="8q7us9l0m5i4" aria-label="Text Editor">
697	<div class="fl-module-content fl-node-content">
698		<div class="fl-rich-text">
699	<p style="text-align: center;"><span style="color: #ffffff;">Copyright  2026 Matrix Sciences</span></p>
700</div>
701	</div>
702</div>
703<div class="fl-module fl-module-pp-social-icons fl-node-9wjgcsr512il" data-node="9wjgcsr512il" aria-label="Social Icons">
704	<div class="fl-module-content fl-node-content">
705		
706<div class="pp-social-icons pp-social-icons-horizontal">
707	<span class="pp-social-icon" itemscope itemtype="https://schema.org/Organization">
708		<link itemprop="url" href="https://www.contracttesting.com">
709		<a itemprop="sameAs" href="https://www.facebook.com/ContractTesting" target="_blank" title="Facebook" aria-label="Facebook" role="button" rel="noopener noreferrer external" >
710							<i class="fab fa-facebook"></i>
711					</a>
712	</span>
713		<span class="pp-social-icon" itemscope itemtype="https://schema.org/Organization">
714		<link itemprop="url" href="https://www.contracttesting.com">
715		<a itemprop="sameAs" href="https://www.instagram.com/contracttesting/" target="_blank" title="Instagram" aria-label="Instagram" role="button" rel="noopener noreferrer external" >
716							<i class="fab fa-instagram"></i>
717					</a>
718	</span>
719		<span class="pp-social-icon" itemscope itemtype="https://schema.org/Organization">
720		<link itemprop="url" href="https://www.contracttesting.com">
721		<a itemprop="sameAs" href="https://www.linkedin.com/company/contract-testing-inc-/" target="_blank" title="LinkedIn" aria-label="LinkedIn" role="button" rel="noopener noreferrer external" >
722							<i class="fab fa-linkedin"></i>
723					</a>
724	</span>
725	</div>
726	</div>
727</div>
728</div>
729</div>
730	</div>
731		</div>
732	</div>
733</div>
734</footer></div>
734<script type="speculationrules">
735{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/infinity-pro/*","/wp-content/themes/genesis/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
736</script>
736
737<style type="text/css" media="screen"></style>
737<script id="fl-builder-layout-13-js" src="https://www.contracttesting.com/wp-content/uploads/bb-plugin/cache/13-layout.js?ver=a4b8b92fbaf5c99389ddb2a18f32b2e1"></script>
vendor: 1 bytes, line 737
737
738<script id="wp-hooks-js" src="https://www.contracttesting.com/wp-includes/js/dist/hooks.min.js?ver=f0f188028580e8dc1255"></script>
vendor: 1 bytes, line 738
738
739<script id="wp-i18n-js" src="https://www.contracttesting.com/wp-includes/js/dist/i18n.min.js?ver=1dfe7db3940c23ea9216"></script>
vendor: 1 bytes, line 739
739
740<script id="wp-i18n-js-after">
741wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } );
742//# sourceURL=wp-i18n-js-after
743</script>
vendor: 1 bytes, line 743
743
744<script id="swv-js" src="https://www.contracttesting.com/wp-content/plugins/contact-form-7/includes/swv/js/index.js?ver=6.1.7"></script>
vendor: 1 bytes, line 744
744
745<script id="contact-form-7-js-before">
746var wpcf7 = {
747    "api": {
748        "root": "https:\/\/www.contracttesting.com\/wp-json\/",
749        "namespace": "contact-form-7\/v1"
750    },
751    "cached": 1
752};
753//# sourceURL=contact-form-7-js-before
754</script>
vendor: 1 bytes, line 754
754
755<script id="contact-form-7-js" src="https://www.contracttesting.com/wp-content/plugins/contact-form-7/includes/js/index.js?ver=6.1.7"></script>
vendor: 1 bytes, line 755
755
756<script id="imagesloaded-js" src="https://www.contracttesting.com/wp-content/plugins/bb-plugin/js/libs/jquery.imagesloaded.min.js?ver=2.11.0.3"></script>
vendor: 1 bytes, line 756
756
757<script id="jquery-throttle-js" src="https://www.contracttesting.com/wp-content/plugins/bb-plugin/js/libs/jquery.ba-throttle-debounce.min.js?ver=2.11.0.3"></script>
vendor: 1 bytes, line 757
757
758<script id="fl-builder-layout-bundle-0043f8ea5d7ce8de61873fbaf8e88b77-js" src="https://www.contracttesting.com/wp-content/uploads/bb-plugin/cache/0043f8ea5d7ce8de61873fbaf8e88b77-layout-bundle.js?ver=2.11.0.3-1.6"></script>
vendor: 1 bytes, line 758
758
759<script async data-wp-strategy="async" fetchpriority="low" id="comment-reply-js" src="https://www.contracttesting.com/wp-includes/js/comment-reply.min.js?ver=7.1"></script>
vendor: 1 bytes, line 759
759
760<script id="hoverIntent-js" src="https://www.contracttesting.com/wp-includes/js/hoverIntent.min.js?ver=1.10.2"></script>
vendor: 1 bytes, line 760
760
761<script id="superfish-js" src="https://www.contracttesting.com/wp-content/themes/genesis/lib/js/menu/superfish.min.js?ver=1.7.10"></script>
vendor: 1 bytes, line 761
761
762<script id="superfish-args-js" src="https://www.contracttesting.com/wp-content/themes/genesis/lib/js/menu/superfish.args.min.js?ver=3.6.2"></script>
vendor: 1 bytes, line 762
762
763<script id="wp-emoji-settings" type="application/json">
764{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://www.contracttesting.com/wp-includes/js/wp-emoji-release.min.js?ver=7.1"}}
765</script>
vendor: 1 bytes, line 765
765
766<script type="module">
767/*! This file is auto-generated */
768var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
769//# sourceURL=https://www.contracttesting.com/wp-includes/js/wp-emoji-loader.min.js
770</script>
770
771    
771<script>
772    document.addEventListener('DOMContentLoaded', function () {
773
774        const caseStudyLabels = {
775            'Lemonade_v3-web-FINAL-1.pdf': 'Download Lemonade Case Study brochure (PDF)',
776            'Apple-Juice-Case-Study.pdf': 'Download Apple Juice Case Study brochure (PDF)',
777            'Milk-Chocolate-v2-web.pdf': 'Download Milk Chocolate Case Study brochure (PDF)'
778        };
779
780        document.querySelectorAll('a[href*=".pdf"]').forEach(function (link) {
781
782            const href = link.getAttribute('href');
783
784            if (!href) {
785                return;
786            }
787
788            Object.keys(caseStudyLabels).forEach(function (pdf) {
789
790                if (href.indexOf(pdf) !== -1) {
791
792                    // Replace the existing aria-label.
793                    link.setAttribute(
794                        'aria-label',
795                        caseStudyLabels[pdf]
796                    );
797
798                }
799
800            });
801
802        });
803
804    });
805    </script>
805
806        
806<script>
807    (function () {
808        function fixAriaControl() {
809            document.querySelectorAll('.fl-menu-toggle[aria-control]').forEach(function (button) {
810                var target = button.getAttribute('aria-control');
811
812                if (target) {
813                    button.setAttribute('aria-controls', target);
814                    button.removeAttribute('aria-control');
815                }
816            });
817        }
818
819        // Run when the page loads.
820        document.addEventListener('DOMContentLoaded', fixAriaControl);
821
822        // Catch Beaver Builder/dynamic menu changes.
823        var observer = new MutationObserver(function () {
824            fixAriaControl();
825        });
826
827        observer.observe(document.documentElement, {
828            childList: true,
829            subtree: true
830        });
831    })();
832		
833		
834// 		another aria fixes
835		
836		 (function () {
837        'use strict';
838
839        function fixAccessibility() {
840
841            /*
842             * FIX 1:
843             * Remove invalid aria-label attributes
844             * from non-interactive Beaver Builder modules.
845             */
846            document.querySelectorAll(
847                '.fl-module-video[aria-label], .fl-module-separator[aria-label]'
848            ).forEach(function (element) {
849                element.removeAttribute('aria-label');
850            });
851
852
853            /*
854             * FIX 2:
855             * Prevent nested interactive controls
856             * in Beaver Builder accordion buttons.
857             */
858            document.querySelectorAll(
859                '.fl-accordion-button[role="button"]'
860            ).forEach(function (container) {
861
862                var innerButton = container.querySelector(
863                    'a[role="button"], button'
864                );
865
866                if (!innerButton) {
867                    return;
868                }
869
870                /*
871                 * Move aria-controls from the parent
872                 * to the actual interactive element.
873                 */
874                var ariaControls = container.getAttribute('aria-controls');
875
876                if (ariaControls) {
877                    innerButton.setAttribute(
878                        'aria-controls',
879                        ariaControls
880                    );
881                }
882
883                /*
884                 * Remove interactive attributes
885                 * from the parent container.
886                 */
887                container.removeAttribute('role');
888                container.removeAttribute('tabindex');
889                container.removeAttribute('aria-controls');
890            });
891        }
892
893
894        /*
895         * Initialize the accessibility fixes.
896         */
897        function initAccessibilityFixes() {
898
899            fixAccessibility();
900
901            /*
902             * Watch for Beaver Builder changes.
903             */
904            var accessibilityObserver = new MutationObserver(function () {
905                fixAccessibility();
906            });
907
908            accessibilityObserver.observe(document.body, {
909                childList: true,
910                subtree: true
911            });
912        }
913
914
915        /*
916         * Start when DOM is ready.
917         */
918        if (document.readyState === 'loading') {
919
920            document.addEventListener(
921                'DOMContentLoaded',
922                initAccessibilityFixes
923            );
924
925        } else {
926
927            initAccessibilityFixes();
928
929        }
930
931    })();
932		
933// fix for unecessary aria-label in photo
934        // Remove aria-label="Photo" from Beaver Builder photo modules
935    document.querySelectorAll('.fl-module-photo[aria-label="Photo"]')
936        .forEach(function(element) {
937            element.removeAttribute('aria-label');
938        });
939
940    // Remove aria-label="Map" from Beaver Builder map modules
941    document.querySelectorAll('.fl-module-map[aria-label="Map"]')
942        .forEach(function(element) {
943            element.removeAttribute('aria-label');
944        });
945    </script>
945
946    
946<script>
947(function () {
948    'use strict';
949
950    /*
951     * ==========================================
952     * GENERAL HELPERS
953     * ==========================================
954     */
955
956    function generateId(prefix) {
957        return prefix + '-' + Math.random().toString(36).substring(2, 10);
958    }
959
960
961    /*
962     * ==========================================
963     * REMOVE INVALID YOUTUBE ARIA-LEVEL
964     * ==========================================
965     */
966
967    function removeAriaLevel() {
968
969        document
970            .querySelectorAll('.ytmVideoInfoVideoTitle[aria-level]')
971            .forEach(function (element) {
972                element.removeAttribute('aria-level');
973            });
974
975    }
976
977
978    /*
979     * ==========================================
980     * FAQ / LOCATION ACCORDION ACCESSIBILITY
981     * ==========================================
982     *
983     * Beaver Builder continues to control the
984     * actual accordion opening/closing.
985     *
986     * We only add:
987     * - role="button"
988     * - tabindex="0"
989     * - aria-expanded
990     * - aria-controls
991     * - keyboard support
992     */
993
994
995    function getAccordionState(item, panel) {
996
997        /*
998         * Beaver Builder commonly uses fl-active
999         * on the accordion item.
1000         */
1001        if (item.classList.contains('fl-active')) {
1002            return true;
1003        }
1004
1005        /*
1006         * Check the panel's aria-hidden state.
1007         */
1008        if (panel.getAttribute('aria-hidden') === 'false') {
1009            return true;
1010        }
1011
1012        /*
1013         * Check the computed display state.
1014         *
1015         * This is safer than checking panel.style.display
1016         * because CSS may control the display property.
1017         */
1018        var style = window.getComputedStyle(panel);
1019
1020        return style.display !== 'none';
1021    }
1022
1023
1024    function updateAccordionAccessibility(item) {
1025
1026        var label = item.querySelector('.fl-accordion-button-label');
1027        var button = item.querySelector('.fl-accordion-button');
1028        var panel = item.querySelector('.fl-accordion-content');
1029
1030        if (!label || !panel) {
1031            return;
1032        }
1033
1034
1035        /*
1036         * Make sure the accordion panel has an ID.
1037         */
1038        if (!panel.id) {
1039            panel.id = generateId('accordion-panel');
1040        }
1041
1042
1043        /*
1044         * The visible FAQ/location text acts as
1045         * the accessible button.
1046         */
1047        label.setAttribute('role', 'button');
1048        label.setAttribute('tabindex', '0');
1049
1050        /*
1051         * Remove invalid heading ARIA.
1052         */
1053        label.removeAttribute('aria-level');
1054
1055
1056        /*
1057         * Connect the button to the panel.
1058         */
1059        label.setAttribute('aria-controls', panel.id);
1060
1061
1062        /*
1063         * Determine current open/closed state.
1064         */
1065        var isOpen = getAccordionState(item, panel);
1066
1067
1068        /*
1069         * Update aria-expanded.
1070         */
1071        label.setAttribute(
1072            'aria-expanded',
1073            isOpen ? 'true' : 'false'
1074        );
1075
1076
1077        /*
1078         * If Beaver Builder's actual accordion
1079         * button exists, keep it synchronized.
1080         */
1081        if (button) {
1082
1083            button.setAttribute(
1084                'aria-expanded',
1085                isOpen ? 'true' : 'false'
1086            );
1087
1088        }
1089
1090    }
1091
1092
1093    /*
1094     * Update all accordions.
1095     */
1096    function updateAllAccordions() {
1097
1098        document
1099            .querySelectorAll('.fl-accordion-item')
1100            .forEach(function (item) {
1101
1102                updateAccordionAccessibility(item);
1103
1104            });
1105
1106    }
1107
1108
1109    /*
1110     * Keyboard support for FAQ accordion.
1111     *
1112     * Enter / Space:
1113     *     Opens/closes the accordion by triggering
1114     *     Beaver Builder's own click behavior.
1115     *
1116     * Escape:
1117     *     Closes the accordion.
1118     */
1119    function initAccordionKeyboard() {
1120
1121        document
1122            .querySelectorAll('.fl-accordion-button-label')
1123            .forEach(function (label) {
1124
1125                if (label.dataset.accessibilityInitialized === 'true') {
1126                    return;
1127                }
1128
1129                label.dataset.accessibilityInitialized = 'true';
1130
1131
1132                label.addEventListener('keydown', function (event) {
1133
1134                    var item = label.closest('.fl-accordion-item');
1135
1136                    if (!item) {
1137                        return;
1138                    }
1139
1140
1141                    /*
1142                     * ENTER
1143                     */
1144                    if (event.key === 'Enter') {
1145
1146                        event.preventDefault();
1147
1148                        /*
1149                         * Trigger Beaver Builder's actual
1150                         * accordion button.
1151                         */
1152                        var button = item.querySelector(
1153                            '.fl-accordion-button'
1154                        );
1155
1156                        if (button) {
1157                            button.click();
1158                        }
1159
1160                        return;
1161                    }
1162
1163
1164                    /*
1165                     * SPACE
1166                     */
1167                    if (event.key === ' ') {
1168
1169                        event.preventDefault();
1170
1171                        var button = item.querySelector(
1172                            '.fl-accordion-button'
1173                        );
1174
1175                        if (button) {
1176                            button.click();
1177                        }
1178
1179                        return;
1180                    }
1181
1182
1183                    /*
1184                     * ESCAPE
1185                     */
1186                    if (event.key === 'Escape') {
1187
1188                        event.preventDefault();
1189
1190                        var button = item.querySelector(
1191                            '.fl-accordion-button'
1192                        );
1193
1194                        /*
1195                         * Only click if the accordion is open.
1196                         */
1197                        if (
1198                            item.classList.contains('fl-active') &&
1199                            button
1200                        ) {
1201                            button.click();
1202                        }
1203
1204                        label.focus();
1205
1206                    }
1207
1208                });
1209
1210
1211                /*
1212                 * Keep aria-expanded synchronized after
1213                 * Beaver Builder processes a click.
1214                 */
1215                label.addEventListener('click', function () {
1216
1217                    setTimeout(function () {
1218
1219                        updateAccordionAccessibility(
1220                            label.closest('.fl-accordion-item')
1221                        );
1222
1223                    }, 50);
1224
1225                });
1226
1227            });
1228
1229    }
1230
1231
1232    /*
1233     * ==========================================
1234     * MENU SUBMENU TOGGLES
1235     * ==========================================
1236     */
1237
1238    function convertToggleSpansToButtons() {
1239
1240        document
1241            .querySelectorAll('.fl-menu .fl-menu-toggle')
1242            .forEach(function (toggle) {
1243
1244                /*
1245                 * Already a button.
1246                 */
1247                if (toggle.tagName.toLowerCase() === 'button') {
1248                    return;
1249                }
1250
1251
1252                /*
1253                 * Only convert spans.
1254                 */
1255                if (toggle.tagName.toLowerCase() !== 'span') {
1256                    return;
1257                }
1258
1259
1260                var button = document.createElement('button');
1261
1262
1263                /*
1264                 * Copy attributes.
1265                 */
1266                Array.from(toggle.attributes).forEach(function (attr) {
1267
1268                    button.setAttribute(
1269                        attr.name,
1270                        attr.value
1271                    );
1272
1273                });
1274
1275
1276                /*
1277                 * Native button.
1278                 */
1279                button.setAttribute('type', 'button');
1280
1281
1282                /*
1283                 * Remove obsolete ARIA.
1284                 */
1285                button.removeAttribute('role');
1286                button.removeAttribute('tabindex');
1287
1288
1289                /*
1290                 * Preserve icon/content.
1291                 */
1292                button.innerHTML = toggle.innerHTML;
1293
1294
1295                /*
1296                 * Replace span.
1297                 */
1298                toggle.replaceWith(button);
1299
1300            });
1301
1302    }
1303
1304
1305    /*
1306     * Add accessibility to navigation.
1307     */
1308    function addMenuAccessibility() {
1309
1310        /*
1311         * Navigation links.
1312         */
1313        document
1314            .querySelectorAll('.fl-menu a')
1315            .forEach(function (link) {
1316
1317                var text = link.textContent.trim();
1318
1319                if (!link.id) {
1320                    link.id = generateId('menu-link');
1321                }
1322
1323                if (
1324                    !link.hasAttribute('aria-label') &&
1325                    text
1326                ) {
1327                    link.setAttribute(
1328                        'aria-label',
1329                        text + ' page'
1330                    );
1331                }
1332
1333            });
1334
1335
1336        /*
1337         * Submenu items.
1338         */
1339        document
1340            .querySelectorAll(
1341                '.fl-menu .menu-item-has-children'
1342            )
1343            .forEach(function (item) {
1344
1345                var link = item.querySelector(':scope > a');
1346                var submenu = item.querySelector(
1347                    ':scope > .sub-menu'
1348                );
1349                var toggle = item.querySelector(
1350                    ':scope > .fl-menu-toggle'
1351                );
1352
1353
1354                if (!link || !submenu || !toggle) {
1355                    return;
1356                }
1357
1358
1359                /*
1360                 * Give submenu an ID.
1361                 */
1362                if (!submenu.id) {
1363                    submenu.id = generateId('submenu');
1364                }
1365
1366
1367                /*
1368                 * Must be a button.
1369                 */
1370                if (
1371                    toggle.tagName.toLowerCase() !== 'button'
1372                ) {
1373                    return;
1374                }
1375
1376
1377                /*
1378                 * ARIA connection.
1379                 */
1380                toggle.setAttribute(
1381                    'aria-controls',
1382                    submenu.id
1383                );
1384
1385
1386                /*
1387                 * Default state.
1388                 */
1389                if (!toggle.hasAttribute('aria-expanded')) {
1390
1391                    toggle.setAttribute(
1392                        'aria-expanded',
1393                        'false'
1394                    );
1395
1396                }
1397
1398
1399                /*
1400                 * Accessible name.
1401                 */
1402                var linkText = link.textContent.trim();
1403
1404                if (
1405                    linkText &&
1406                    !toggle.hasAttribute('aria-label')
1407                ) {
1408
1409                    toggle.setAttribute(
1410                        'aria-label',
1411                        'Toggle ' + linkText + ' submenu'
1412                    );
1413
1414                }
1415
1416
1417                /*
1418                 * Prevent duplicate listeners.
1419                 */
1420                if (
1421                    toggle.dataset.accessibilityInitialized ===
1422                    'true'
1423                ) {
1424                    return;
1425                }
1426
1427
1428                toggle.dataset.accessibilityInitialized = 'true';
1429
1430
1431                /*
1432                 * Escape should close the submenu.
1433                 *
1434                 * IMPORTANT:
1435                 * Do NOT manually set display:none.
1436                 *
1437                 * Let Beaver Builder handle the
1438                 * actual menu state.
1439                 */
1440                toggle.addEventListener(
1441                    'keydown',
1442                    function (event) {
1443
1444                        if (event.key === 'Escape') {
1445
1446                            event.preventDefault();
1447
1448                            /*
1449                             * Trigger the existing toggle.
1450                             */
1451                            if (
1452                                toggle.getAttribute(
1453                                    'aria-expanded'
1454                                ) === 'true'
1455                            ) {
1456                                toggle.click();
1457                            }
1458
1459                            toggle.focus();
1460
1461                        }
1462
1463                    }
1464                );
1465
1466
1467                /*
1468                 * Synchronize aria-expanded after click.
1469                 */
1470                toggle.addEventListener(
1471                    'click',
1472                    function () {
1473
1474                        setTimeout(function () {
1475
1476                            var expanded =
1477                                item.classList.contains(
1478                                    'fl-active'
1479                                ) ||
1480                                item.classList.contains(
1481                                    'open'
1482                                ) ||
1483                                submenu.classList.contains(
1484                                    'open'
1485                                );
1486
1487                            toggle.setAttribute(
1488                                'aria-expanded',
1489                                expanded
1490                                    ? 'true'
1491                                    : 'false'
1492                            );
1493
1494                        }, 100);
1495
1496                    }
1497                );
1498
1499            });
1500
1501    }
1502
1503
1504    /*
1505     * ==========================================
1506     * INITIALIZATION
1507     * ==========================================
1508     */
1509
1510    function initAccessibility() {
1511
1512        removeAriaLevel();
1513
1514        convertToggleSpansToButtons();
1515
1516        addMenuAccessibility();
1517
1518        updateAllAccordions();
1519
1520        initAccordionKeyboard();
1521
1522    }
1523
1524
1525    /*
1526     * ==========================================
1527     * DOM READY
1528     * ==========================================
1529     */
1530
1531    if (document.readyState === 'loading') {
1532
1533        document.addEventListener(
1534            'DOMContentLoaded',
1535            initAccessibility
1536        );
1537
1538    } else {
1539
1540        initAccessibility();
1541
1542    }
1543
1544
1545    /*
1546     * ==========================================
1547     * MUTATION OBSERVER
1548     * ==========================================
1549     *
1550     * Only watch for newly added elements.
1551     *
1552     * We deliberately DO NOT watch attributes
1553     * such as aria-expanded or style because our
1554     * own accessibility changes would trigger
1555     * the observer repeatedly.
1556     */
1557
1558    var observerTimeout;
1559
1560    var timedObserver = new MutationObserver(
1561        function (mutations) {
1562
1563            var shouldUpdate = false;
1564
1565            mutations.forEach(function (mutation) {
1566
1567                if (mutation.addedNodes.length > 0) {
1568                    shouldUpdate = true;
1569                }
1570
1571            });
1572
1573
1574            if (!shouldUpdate) {
1575                return;
1576            }
1577
1578
1579            clearTimeout(observerTimeout);
1580
1581
1582            observerTimeout = setTimeout(
1583                function () {
1584
1585                    initAccessibility();
1586
1587                },
1588                100
1589            );
1590
1591        }
1592    );
1593
1594
1595    timedObserver.observe(
1596        document.documentElement,
1597        {
1598            childList: true,
1599            subtree: true
1600        }
1601    );
1602
1603
1604    /*
1605     * ==========================================
1606     * ACCORDION STATE OBSERVER
1607     * ==========================================
1608     *
1609     * Separate observer for Beaver Builder's
1610     * accordion class/state changes.
1611     */
1612
1613    var accordionObserver =
1614        new MutationObserver(
1615            function (mutations) {
1616
1617                var shouldUpdate = false;
1618
1619                mutations.forEach(function (mutation) {
1620
1621                    if (
1622                        mutation.type === 'attributes' &&
1623                        (
1624                            mutation.attributeName === 'class' ||
1625                            mutation.attributeName === 'style' ||
1626                            mutation.attributeName === 'aria-hidden'
1627                        )
1628                    ) {
1629                        shouldUpdate = true;
1630                    }
1631
1632                });
1633
1634
1635                if (!shouldUpdate) {
1636                    return;
1637                }
1638
1639
1640                /*
1641                 * Wait until Beaver Builder finishes
1642                 * its open/close animation.
1643                 */
1644                setTimeout(
1645                    updateAllAccordions,
1646                    50
1647                );
1648
1649            }
1650        );
1651
1652
1653    document
1654        .querySelectorAll('.fl-accordion')
1655        .forEach(function (accordion) {
1656
1657            accordionObserver.observe(
1658                accordion,
1659                {
1660                    subtree: true,
1661                    attributes: true,
1662                    attributeFilter: [
1663                        'class',
1664                        'style',
1665                        'aria-hidden'
1666                    ]
1667                }
1668            );
1669
1670        });
1671	
1672	
1673// 	Remove unecessary aria
1674
1675
1676    function fixAccordionAria() {
1677        document.querySelectorAll('.fl-accordion-button').forEach(function (button) {
1678
1679            // Remove aria-expanded from the parent div
1680            button.removeAttribute('aria-expanded');
1681
1682        });
1683    }
1684
1685    // Run immediately
1686    fixAccordionAria();
1687
1688    // Watch for Beaver Builder/plugin changes
1689    const ariaRemoveObserver = new MutationObserver(function () {
1690        fixAccordionAria();
1691    });
1692
1693    ariaRemoveObserver.observe(document.documentElement, {
1694        childList: true,
1695        subtree: true,
1696        attributes: true,
1697        attributeFilter: ['aria-expanded']
1698    });
1699
1700	
1701	
1702	function updateFrenchLanguageLink() {
1703        const frenchLink = document.querySelector('#francais a');
1704
1705        if (frenchLink) {
1706            frenchLink.setAttribute('lang', 'fr');
1707            frenchLink.setAttribute('hreflang', 'fr');
1708        }
1709    }
1710
1711    updateFrenchLanguageLink();
1712
1713    const frenchObserver = new MutationObserver(updateFrenchLanguageLink);
1714
1715    frenchObserver.observe(document.documentElement, {
1716        childList: true,
1717        subtree: true
1718    });
1719	
1720	
1721	
1722// 	Unique navigation Aria Labels
1723	
1724	function updateNavLabels() {
1725
1726        const navMappings = [
1727            {
1728                selector: '.main-menu nav',
1729                label: 'Main Navigation'
1730            },
1731            {
1732                selector: '.fl-node-ufobipys1nzh nav',
1733                label: 'About Navigation'
1734            },
1735            {
1736                selector: '.fl-node-btmxjzcd9ur7 nav',
1737                label: 'Testers Navigation'
1738            }
1739        ];
1740
1741        navMappings.forEach(function (item) {
1742            document.querySelectorAll(item.selector).forEach(function (nav) {
1743
1744                // Only update if needed
1745                if (nav.getAttribute('aria-label') !== item.label) {
1746                    nav.setAttribute('aria-label', item.label);
1747                }
1748
1749            });
1750        });
1751    }
1752
1753    // Run immediately
1754    updateNavLabels();
1755
1756    // Watch for Beaver Builder or AJAX changes
1757    const navigationObserver = new MutationObserver(function () {
1758        updateNavLabels();
1759    });
1760
1761    navigationObserver.observe(document.documentElement, {
1762        childList: true,
1763        subtree: true,
1764        attributes: true,
1765        attributeFilter: ['aria-label']
1766    });
1767
1768		
1769})();
1770	
1771	document.addEventListener('DOMContentLoaded', function () {
1772    const closeButton = document.getElementById('cn-close-notice');
1773
1774    if (closeButton) {
1775        closeButton.setAttribute('aria-label', 'Dismiss cookie notice.');
1776    }
1777});
1778
1779	
1780</script>
1780
1781
1782		<!-- Cookie Compliance for WordPress (formerly Compliance by Hu-manity.co) plugin v3.1.9 https://cookie-compliance.co/ -->
1783		<div id="cookie-notice" role="dialog" class="cookie-notice-hidden cookie-revoke-hidden cn-position-bottom" aria-label="Cookie Compliance" style="background-color: rgba(0,0,0,0.8);"><div class="cookie-notice-container" style="color: #fff"><span id="cn-notice-text" class="cn-text-container">We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.</span><span id="cn-notice-buttons" class="cn-buttons-container"><button id="cn-accept-cookie" data-cookie-set="accept" class="cn-set-cookie cn-button cn-button-custom button" aria-label="Ok">Ok</button><button data-link-url="https://www.contracttesting.com/proven-protocols/" data-link-target="_blank" id="cn-more-info" class="cn-more-info cn-button cn-button-custom button" aria-label="Cookie policy">Cookie policy</button></span><button type="button" id="cn-close-notice" data-cookie-set="accept" class="cn-close-icon" aria-label="No" tabindex="0"></button></div>
1784			
1785		</div>
1786		<!-- / Cookie Compliance for WordPress plugin --></body></html>
1787
1788<!--
1789Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin
1790
1791Page Caching using Disk: Enhanced 
1792
1793Served from: www.contracttesting.com @ 2026-10-05 17:44:26 by W3 Total Cache
1794-->

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.