CINXE.COM
Parts/Equipment – Peter Detkin Lab
<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="profile" href="http://gmpg.org/xfn/11"> <title>Parts/Equipment – Peter Detkin Lab</title> <meta name='robots' content='max-image-preview:large' /> <style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style> <link rel='dns-prefetch' href='//www.google.com' /> <link rel='dns-prefetch' href='//stats.wp.com' /> <link rel='dns-prefetch' href='//fonts.googleapis.com' /> <link rel="alternate" type="application/rss+xml" title="Peter Detkin Lab » Feed" href="https://detkin.ese.upenn.edu/feed/" /> <link rel="alternate" type="application/rss+xml" title="Peter Detkin Lab » Comments Feed" href="https://detkin.ese.upenn.edu/comments/feed/" /> <!-- This site uses the Google Analytics by MonsterInsights plugin v9.3.0 - Using Analytics tracking - https://www.monsterinsights.com/ --> <script src="//www.googletagmanager.com/gtag/js?id=G-R9700F5JZ6" data-cfasync="false" data-wpfc-render="false" type="text/javascript" async></script> <script data-cfasync="false" data-wpfc-render="false" type="text/javascript"> var mi_version = '9.3.0'; var mi_track_user = true; var mi_no_track_reason = ''; var MonsterInsightsDefaultLocations = {"page_location":"https:\/\/detkin.ese.upenn.edu\/resources\/parts\/"}; if ( typeof MonsterInsightsPrivacyGuardFilter === 'function' ) { var MonsterInsightsLocations = (typeof MonsterInsightsExcludeQuery === 'object') ? MonsterInsightsPrivacyGuardFilter( MonsterInsightsExcludeQuery ) : MonsterInsightsPrivacyGuardFilter( MonsterInsightsDefaultLocations ); } else { var MonsterInsightsLocations = (typeof MonsterInsightsExcludeQuery === 'object') ? MonsterInsightsExcludeQuery : MonsterInsightsDefaultLocations; } var disableStrs = [ 'ga-disable-G-R9700F5JZ6', ]; /* Function to detect opted out users */ function __gtagTrackerIsOptedOut() { for (var index = 0; index < disableStrs.length; index++) { if (document.cookie.indexOf(disableStrs[index] + '=true') > -1) { return true; } } return false; } /* Disable tracking if the opt-out cookie exists. */ if (__gtagTrackerIsOptedOut()) { for (var index = 0; index < disableStrs.length; index++) { window[disableStrs[index]] = true; } } /* Opt-out function */ function __gtagTrackerOptout() { for (var index = 0; index < disableStrs.length; index++) { document.cookie = disableStrs[index] + '=true; expires=Thu, 31 Dec 2099 23:59:59 UTC; path=/'; window[disableStrs[index]] = true; } } if ('undefined' === typeof gaOptout) { function gaOptout() { __gtagTrackerOptout(); } } window.dataLayer = window.dataLayer || []; window.MonsterInsightsDualTracker = { helpers: {}, trackers: {}, }; if (mi_track_user) { function __gtagDataLayer() { dataLayer.push(arguments); } function __gtagTracker(type, name, parameters) { if (!parameters) { parameters = {}; } if (parameters.send_to) { __gtagDataLayer.apply(null, arguments); return; } if (type === 'event') { parameters.send_to = monsterinsights_frontend.v4_id; var hookName = name; if (typeof parameters['event_category'] !== 'undefined') { hookName = parameters['event_category'] + ':' + name; } if (typeof MonsterInsightsDualTracker.trackers[hookName] !== 'undefined') { MonsterInsightsDualTracker.trackers[hookName](parameters); } else { __gtagDataLayer('event', name, parameters); } } else { __gtagDataLayer.apply(null, arguments); } } __gtagTracker('js', new Date()); __gtagTracker('set', { 'developer_id.dZGIzZG': true, }); if ( MonsterInsightsLocations.page_location ) { __gtagTracker('set', MonsterInsightsLocations); } __gtagTracker('config', 'G-R9700F5JZ6', {"forceSSL":"true","link_attribution":"true"} ); window.gtag = __gtagTracker; (function () { /* https://developers.google.com/analytics/devguides/collection/analyticsjs/ */ /* ga and __gaTracker compatibility shim. */ var noopfn = function () { return null; }; var newtracker = function () { return new Tracker(); }; var Tracker = function () { return null; }; var p = Tracker.prototype; p.get = noopfn; p.set = noopfn; p.send = function () { var args = Array.prototype.slice.call(arguments); args.unshift('send'); __gaTracker.apply(null, args); }; var __gaTracker = function () { var len = arguments.length; if (len === 0) { return; } var f = arguments[len - 1]; if (typeof f !== 'object' || f === null || typeof f.hitCallback !== 'function') { if ('send' === arguments[0]) { var hitConverted, hitObject = false, action; if ('event' === arguments[1]) { if ('undefined' !== typeof arguments[3]) { hitObject = { 'eventAction': arguments[3], 'eventCategory': arguments[2], 'eventLabel': arguments[4], 'value': arguments[5] ? arguments[5] : 1, } } } if ('pageview' === arguments[1]) { if ('undefined' !== typeof arguments[2]) { hitObject = { 'eventAction': 'page_view', 'page_path': arguments[2], } } } if (typeof arguments[2] === 'object') { hitObject = arguments[2]; } if (typeof arguments[5] === 'object') { Object.assign(hitObject, arguments[5]); } if ('undefined' !== typeof arguments[1].hitType) { hitObject = arguments[1]; if ('pageview' === hitObject.hitType) { hitObject.eventAction = 'page_view'; } } if (hitObject) { action = 'timing' === arguments[1].hitType ? 'timing_complete' : hitObject.eventAction; hitConverted = mapArgs(hitObject); __gtagTracker('event', action, hitConverted); } } return; } function mapArgs(args) { var arg, hit = {}; var gaMap = { 'eventCategory': 'event_category', 'eventAction': 'event_action', 'eventLabel': 'event_label', 'eventValue': 'event_value', 'nonInteraction': 'non_interaction', 'timingCategory': 'event_category', 'timingVar': 'name', 'timingValue': 'value', 'timingLabel': 'event_label', 'page': 'page_path', 'location': 'page_location', 'title': 'page_title', 'referrer' : 'page_referrer', }; for (arg in args) { if (!(!args.hasOwnProperty(arg) || !gaMap.hasOwnProperty(arg))) { hit[gaMap[arg]] = args[arg]; } else { hit[arg] = args[arg]; } } return hit; } try { f.hitCallback(); } catch (ex) { } }; __gaTracker.create = newtracker; __gaTracker.getByName = newtracker; __gaTracker.getAll = function () { return []; }; __gaTracker.remove = noopfn; __gaTracker.loaded = true; window['__gaTracker'] = __gaTracker; })(); } else { console.log(""); (function () { function __gtagTracker() { return null; } window['__gtagTracker'] = __gtagTracker; window['gtag'] = __gtagTracker; })(); } </script> <!-- / Google Analytics by MonsterInsights --> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/detkin.ese.upenn.edu\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.7.2"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!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!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));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(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <link rel='stylesheet' id='sbi_styles-css' href='https://detkin.ese.upenn.edu/wp-content/plugins/instagram-feed/css/sbi-styles.min.css?ver=6.7.1' type='text/css' media='all' /> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://detkin.ese.upenn.edu/wp-includes/css/dist/block-library/style.min.css?ver=6.7.2' type='text/css' media='all' /> <style id='wp-block-library-theme-inline-css' type='text/css'> .wp-block-audio :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-audio :where(figcaption){color:#ffffffa6}.wp-block-audio{margin:0 0 1em}.wp-block-code{border:1px solid #ccc;border-radius:4px;font-family:Menlo,Consolas,monaco,monospace;padding:.8em 1em}.wp-block-embed :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-embed :where(figcaption){color:#ffffffa6}.wp-block-embed{margin:0 0 1em}.blocks-gallery-caption{color:#555;font-size:13px;text-align:center}.is-dark-theme .blocks-gallery-caption{color:#ffffffa6}:root :where(.wp-block-image figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme :root :where(.wp-block-image figcaption){color:#ffffffa6}.wp-block-image{margin:0 0 1em}.wp-block-pullquote{border-bottom:4px solid;border-top:4px solid;color:currentColor;margin-bottom:1.75em}.wp-block-pullquote cite,.wp-block-pullquote footer,.wp-block-pullquote__citation{color:currentColor;font-size:.8125em;font-style:normal;text-transform:uppercase}.wp-block-quote{border-left:.25em solid;margin:0 0 1.75em;padding-left:1em}.wp-block-quote cite,.wp-block-quote footer{color:currentColor;font-size:.8125em;font-style:normal;position:relative}.wp-block-quote:where(.has-text-align-right){border-left:none;border-right:.25em solid;padding-left:0;padding-right:1em}.wp-block-quote:where(.has-text-align-center){border:none;padding-left:0}.wp-block-quote.is-large,.wp-block-quote.is-style-large,.wp-block-quote:where(.is-style-plain){border:none}.wp-block-search .wp-block-search__label{font-weight:700}.wp-block-search__button{border:1px solid #ccc;padding:.375em .625em}:where(.wp-block-group.has-background){padding:1.25em 2.375em}.wp-block-separator.has-css-opacity{opacity:.4}.wp-block-separator{border:none;border-bottom:2px solid;margin-left:auto;margin-right:auto}.wp-block-separator.has-alpha-channel-opacity{opacity:1}.wp-block-separator:not(.is-style-wide):not(.is-style-dots){width:100px}.wp-block-separator.has-background:not(.is-style-dots){border-bottom:none;height:1px}.wp-block-separator.has-background:not(.is-style-wide):not(.is-style-dots){height:2px}.wp-block-table{margin:0 0 1em}.wp-block-table td,.wp-block-table th{word-break:normal}.wp-block-table :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-table :where(figcaption){color:#ffffffa6}.wp-block-video :where(figcaption){color:#555;font-size:13px;text-align:center}.is-dark-theme .wp-block-video :where(figcaption){color:#ffffffa6}.wp-block-video{margin:0 0 1em}:root :where(.wp-block-template-part.has-background){margin-bottom:0;margin-top:0;padding:1.25em 2.375em} </style> <link rel='stylesheet' id='mediaelement-css' href='https://detkin.ese.upenn.edu/wp-includes/js/mediaelement/mediaelementplayer-legacy.min.css?ver=4.2.17' type='text/css' media='all' /> <link rel='stylesheet' id='wp-mediaelement-css' href='https://detkin.ese.upenn.edu/wp-includes/js/mediaelement/wp-mediaelement.min.css?ver=6.7.2' type='text/css' media='all' /> <style id='jetpack-sharing-buttons-style-inline-css' type='text/css'> .jetpack-sharing-buttons__services-list{display:flex;flex-direction:row;flex-wrap:wrap;gap:0;list-style-type:none;margin:5px;padding:0}.jetpack-sharing-buttons__services-list.has-small-icon-size{font-size:12px}.jetpack-sharing-buttons__services-list.has-normal-icon-size{font-size:16px}.jetpack-sharing-buttons__services-list.has-large-icon-size{font-size:24px}.jetpack-sharing-buttons__services-list.has-huge-icon-size{font-size:36px}@media print{.jetpack-sharing-buttons__services-list{display:none!important}}.editor-styles-wrapper .wp-block-jetpack-sharing-buttons{gap:0;padding-inline-start:0}ul.jetpack-sharing-buttons__services-list.has-background{padding:1.25em 2.375em} </style> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .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} </style> <style id='global-styles-inline-css' type='text/css'> :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: #3c4852;--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--color--geen: #03b97c;--wp--preset--color--dark-gray: #4e6579;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 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,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 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: 14px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--font-size--normal: 22px;--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 rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}: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;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.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;}.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;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='cal-style-css' href='https://detkin.ese.upenn.edu/wp-content/plugins/dans-gcal/js/fullcalendar/fullcalendar.min.css?ver=6.7.2' type='text/css' media='all' /> <link rel='stylesheet' id='qtip-style-css' href='https://detkin.ese.upenn.edu/wp-content/plugins/dans-gcal/js/jquery.qtip.min.css?ver=6.7.2' type='text/css' media='all' /> <link rel='stylesheet' id='gcal-flow-style-css' href='https://detkin.ese.upenn.edu/wp-content/plugins/dans-gcal/js/jquery-gcal-flow/jquery.gcal_flow.css?ver=6.7.2' type='text/css' media='all' /> <link rel='stylesheet' id='mptt-style-css' href='https://detkin.ese.upenn.edu/wp-content/plugins/mp-timetable/media/css/style.css?ver=2.4.14' type='text/css' media='all' /> <link rel='stylesheet' id='simple-banner-style-css' href='https://detkin.ese.upenn.edu/wp-content/plugins/simple-banner/simple-banner.css?ver=3.0.4' type='text/css' media='all' /> <link rel='stylesheet' id='kitolms-google-font-css' href='//fonts.googleapis.com/css?family=Muli%3A300%2C300i%2C400%2C400i%2C600%2C600i%2C700%2C700i%2C800%2C800i%2C900%7CJost%3Awght%40400%3B500%3B600%3B700&display=swap&ver=all' type='text/css' media='all' /> <link rel='stylesheet' id='buttons-css' href='https://detkin.ese.upenn.edu/wp-includes/css/buttons.min.css?ver=6.7.2' type='text/css' media='all' /> <link rel='stylesheet' id='dashicons-css' href='https://detkin.ese.upenn.edu/wp-includes/css/dashicons.min.css?ver=6.7.2' type='text/css' media='all' /> <link rel='stylesheet' id='media-views-css' href='https://detkin.ese.upenn.edu/wp-includes/css/media-views.min.css?ver=6.7.2' type='text/css' media='all' /> <link rel='stylesheet' id='imgareaselect-css' href='https://detkin.ese.upenn.edu/wp-includes/js/imgareaselect/imgareaselect.css?ver=0.9.8' type='text/css' media='all' /> <link rel='stylesheet' id='kitolms-animation-css' href='https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/css/plugins/animation.css?ver=all' type='text/css' media='all' /> <link rel='stylesheet' id='kitolms-magnific-popup-css' href='https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/css/plugins/magnific-popup.css?ver=all' type='text/css' media='all' /> <link rel='stylesheet' id='kitolms-bootstrap-css' href='https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/css/plugins/bootstrap.min.css?ver=all' type='text/css' media='all' /> <link rel='stylesheet' id='kitolms-date-picker-css' href='https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/css/plugins/date-picker.css?ver=all' type='text/css' media='all' /> <link rel='stylesheet' id='kitolms-select2-css' href='https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/css/plugins/select2.css?ver=all' type='text/css' media='all' /> <link rel='stylesheet' id='kitolms-slick-css' href='https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/css/plugins/slick.css?ver=all' type='text/css' media='all' /> <link rel='stylesheet' id='kitolms-slick-theme-css' href='https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/css/plugins/slick-theme.css?ver=all' type='text/css' media='all' /> <link rel='stylesheet' id='kitolms-themify-css' href='https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/css/plugins/themify.css?ver=all' type='text/css' media='all' /> <link rel='stylesheet' id='kitolms-morris-css' href='https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/css/plugins/morris.css?ver=all' type='text/css' media='all' /> <link rel='stylesheet' id='kitolms-font-awesome-css' href='https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/css/plugins/font-awesome.css?ver=all' type='text/css' media='all' /> <link rel='stylesheet' id='kitolms-flaticon-css' href='https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/css/plugins/flaticon.css?ver=all' type='text/css' media='all' /> <link rel='stylesheet' id='kitolms-main-css' href='https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/css/main.css?ver=all' type='text/css' media='all' /> <link rel='stylesheet' id='kitolms-style-css' href='https://detkin.ese.upenn.edu/wp-content/themes/kitolms/style.css?ver=6.7.2' type='text/css' media='all' /> <style id='kitolms-style-inline-css' type='text/css'> body{ --kitolms-body-color: #ffffff; --kitolms-major-color: #03b97c; --kitolms-heading-color: #333d46; --kitolms-text-color: #3c4852; --kitolms-link-color: #30384e; --kitolms-paragraph-color: #4e6579; --kitolms-overlay-color: #03b97c1a; } body{font-size:15px;font-family:Muli;font-weight: 400;line-height: 20px;}.nav-menu>li>a, .nav-menus-wrapper .input-with-icon .form-control, .account-drop .dropdown-menu ul li a, .nav-dropdown>li>a {font-size:14px;font-family:Jost;font-weight: 500;line-height: 18px;}h1{font-size:36px;font-family:Jost;font-weight: 600;line-height: 40px;}h2{font-size:36px;font-family:Jost;font-weight: 500;line-height: 36px;}h3{font-size:26px;font-family:Jost;font-weight: 500;line-height: 28px;}h4{font-size:18px;font-family:Jost;font-weight: 500;line-height: 26px;}h5, h6{font-size:14px;font-family:Jost;font-weight: 500;line-height: 26px;}.hfeed .header.header-light{ background: #ffffff; }.hfeed .header.header-fixed { background: #fafafa; }.header-transparent.dark-text .nav-menu>li>a, .account-drop .dropdown-menu ul li a, .header-transparent.dark-text .nav-menu>li>a.cart-contents:before { color: #404656; }.header-transparent.dark-text .submenu-indicator-chevron { border-color: #404656; }.hfeed .header { padding-top: 0px; }.hfeed .header { padding-bottom: 0px; }.breadcrumbs-wrap .breadcrumb-title {font-size:36px;}section.page-title.bg-cover {padding:80px 0 80px; margin-bottom: 0px;}.breadcrumbs-wrap .breadcrumb-title, .breadcrumb-item a {color:#fff;}footer.skin-dark-footer, .dark-footer .footer-bottom { background: #1d2636; }footer.skin-dark-footer h4 { color: #ffffff; }footer.skin-dark-footer .footer_widget ul li a, footer.skin-dark-footer, footer.skin-dark-footer a { color: #fff; }footer.skin-dark-footer .footer_widget ul li a:hover, footer.skin-dark-footer .footer_widget ul li a:focus { color: #ffffff; }.footer-middle { padding-top: 60px; }.footer-middle { padding-bottom: 60px; }body.error404, body.page-template-404 { width: 100%; height: 100%; min-height: 100%; } </style> <link rel='stylesheet' id='rt-team-css-css' href='https://detkin.ese.upenn.edu/wp-content/plugins/tlp-team/assets/css/tlpteam.css?ver=5.0.0' type='text/css' media='all' /> <link rel='stylesheet' id='rt-team-sc-css' href='https://detkin.ese.upenn.edu/wp-content/uploads/tlp-team/team-sc.css?ver=1644619657' type='text/css' media='all' /> <link rel='stylesheet' id='simcal-qtip-css' href='https://detkin.ese.upenn.edu/wp-content/plugins/google-calendar-events/assets/generated/vendor/jquery.qtip.min.css?ver=3.4.9' type='text/css' media='all' /> <link rel='stylesheet' id='simcal-default-calendar-grid-css' href='https://detkin.ese.upenn.edu/wp-content/plugins/google-calendar-events/assets/generated/default-calendar-grid.min.css?ver=3.4.9' type='text/css' media='all' /> <link rel='stylesheet' id='simcal-default-calendar-list-css' href='https://detkin.ese.upenn.edu/wp-content/plugins/google-calendar-events/assets/generated/default-calendar-list.min.css?ver=3.4.9' type='text/css' media='all' /> <link rel='stylesheet' id='kadence-blocks-spacer-css' href='https://detkin.ese.upenn.edu/wp-content/plugins/kadence-blocks/dist/style-blocks-spacer.css?ver=3.4.11' type='text/css' media='all' /> <style id='kadence-blocks-advancedheading-inline-css' type='text/css'> .wp-block-kadence-advancedheading mark{background:transparent;border-style:solid;border-width:0}.wp-block-kadence-advancedheading mark.kt-highlight{color:#f76a0c;}.kb-adv-heading-icon{display: inline-flex;justify-content: center;align-items: center;} .is-layout-constrained > .kb-advanced-heading-link {display: block;} </style> <style id='kadence-blocks-global-variables-inline-css' type='text/css'> :root {--global-kb-font-size-sm:clamp(0.8rem, 0.73rem + 0.217vw, 0.9rem);--global-kb-font-size-md:clamp(1.1rem, 0.995rem + 0.326vw, 1.25rem);--global-kb-font-size-lg:clamp(1.75rem, 1.576rem + 0.543vw, 2rem);--global-kb-font-size-xl:clamp(2.25rem, 1.728rem + 1.63vw, 3rem);--global-kb-font-size-xxl:clamp(2.5rem, 1.456rem + 3.26vw, 4rem);--global-kb-font-size-xxxl:clamp(2.75rem, 0.489rem + 7.065vw, 6rem);}:root {--global-palette1: #3182CE;--global-palette2: #2B6CB0;--global-palette3: #1A202C;--global-palette4: #2D3748;--global-palette5: #4A5568;--global-palette6: #718096;--global-palette7: #EDF2F7;--global-palette8: #F7FAFC;--global-palette9: #ffffff;} </style> <link rel='stylesheet' id='__EPYT__style-css' href='https://detkin.ese.upenn.edu/wp-content/plugins/youtube-embed-plus/styles/ytprefs.min.css?ver=14.2.1.3' type='text/css' media='all' /> <style id='__EPYT__style-inline-css' type='text/css'> .epyt-gallery-thumb { width: 33.333%; } </style> <style id='kadence_blocks_css-inline-css' type='text/css'> .wp-block-kadence-spacer.kt-block-spacer-70_492d54-81 .kt-divider{width:80%;}.wp-block-kadence-spacer.kt-block-spacer-70_133200-ae .kt-block-spacer{height:30px;}.wp-block-kadence-spacer.kt-block-spacer-70_133200-ae .kt-divider{width:80%;}.wp-block-kadence-advancedheading.kt-adv-heading70_7055d4-f9 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading70_7055d4-f9[data-kb-block="kb-adv-heading70_7055d4-f9"] mark.kt-highlight{-webkit-box-decoration-break:clone;box-decoration-break:clone;}.wp-block-kadence-spacer.kt-block-spacer-70_13cfa1-65 .kt-block-spacer{height:30px;}.wp-block-kadence-spacer.kt-block-spacer-70_13cfa1-65 .kt-divider{width:80%;}.wp-block-kadence-advancedheading.kt-adv-heading70_8ca548-48 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading70_8ca548-48[data-kb-block="kb-adv-heading70_8ca548-48"] mark.kt-highlight{-webkit-box-decoration-break:clone;box-decoration-break:clone;}.wp-block-kadence-spacer.kt-block-spacer-70_351ac6-c2 .kt-block-spacer{height:30px;}.wp-block-kadence-spacer.kt-block-spacer-70_351ac6-c2 .kt-divider{width:80%;}.wp-block-kadence-advancedheading.kt-adv-heading70_a5f9e4-c1 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading70_a5f9e4-c1[data-kb-block="kb-adv-heading70_a5f9e4-c1"] mark.kt-highlight{-webkit-box-decoration-break:clone;box-decoration-break:clone;}.wp-block-kadence-spacer.kt-block-spacer-70_248dd1-22 .kt-block-spacer{height:30px;}.wp-block-kadence-spacer.kt-block-spacer-70_248dd1-22 .kt-divider{width:80%;}.wp-block-kadence-advancedheading.kt-adv-heading70_5ecd01-92 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading70_5ecd01-92[data-kb-block="kb-adv-heading70_5ecd01-92"] mark.kt-highlight{-webkit-box-decoration-break:clone;box-decoration-break:clone;}.wp-block-kadence-spacer.kt-block-spacer-70_30f2cd-23 .kt-block-spacer{height:30px;}.wp-block-kadence-spacer.kt-block-spacer-70_30f2cd-23 .kt-divider{width:80%;}.wp-block-kadence-advancedheading.kt-adv-heading70_d2e84c-53 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading70_d2e84c-53[data-kb-block="kb-adv-heading70_d2e84c-53"] mark.kt-highlight{-webkit-box-decoration-break:clone;box-decoration-break:clone;}.wp-block-kadence-spacer.kt-block-spacer-70_da2cd6-cb .kt-block-spacer{height:30px;}.wp-block-kadence-spacer.kt-block-spacer-70_da2cd6-cb .kt-divider{width:80%;}.wp-block-kadence-advancedheading.kt-adv-heading70_1928f3-12 mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading70_1928f3-12[data-kb-block="kb-adv-heading70_1928f3-12"] mark.kt-highlight{-webkit-box-decoration-break:clone;box-decoration-break:clone;}.wp-block-kadence-spacer.kt-block-spacer-70_5f5736-ff .kt-block-spacer{height:30px;}.wp-block-kadence-spacer.kt-block-spacer-70_5f5736-ff .kt-divider{width:80%;}.wp-block-kadence-advancedheading.kt-adv-heading70_641ce8-7f mark.kt-highlight, .wp-block-kadence-advancedheading.kt-adv-heading70_641ce8-7f[data-kb-block="kb-adv-heading70_641ce8-7f"] mark.kt-highlight{-webkit-box-decoration-break:clone;box-decoration-break:clone;}.wp-block-kadence-spacer.kt-block-spacer-70_59eb58-c4 .kt-block-spacer{height:30px;}.wp-block-kadence-spacer.kt-block-spacer-70_59eb58-c4 .kt-divider{width:80%;} </style> <!--n2css--><!--n2js--><script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/plugins/google-analytics-for-wordpress/assets/js/frontend-gtag.min.js?ver=9.3.0" id="monsterinsights-frontend-script-js" async="async" data-wp-strategy="async"></script> <script data-cfasync="false" data-wpfc-render="false" type="text/javascript" id='monsterinsights-frontend-script-js-extra'>/* <![CDATA[ */ var monsterinsights_frontend = {"js_events_tracking":"true","download_extensions":"doc,pdf,ppt,zip,xls,docx,pptx,xlsx","inbound_paths":"[{\"path\":\"\\\/go\\\/\",\"label\":\"affiliate\"},{\"path\":\"\\\/recommend\\\/\",\"label\":\"affiliate\"}]","home_url":"https:\/\/detkin.ese.upenn.edu","hash_tracking":"false","v4_id":"G-R9700F5JZ6"};/* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/jquery/jquery.min.js?ver=3.7.1" id="jquery-core-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/jquery/jquery-migrate.min.js?ver=3.4.1" id="jquery-migrate-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/plugins/dans-gcal/js/fullcalendar/lib/moment.min.js?ver=6.7.2" id="moment-js-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/plugins/dans-gcal/js/fullcalendar/fullcalendar.js?ver=6.7.2" id="fullcal-js-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/plugins/dans-gcal/js/fullcalendar/gcal.js?ver=6.7.2" id="gcal-js-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/plugins/dans-gcal/js/jquery.qtip.min.js?ver=6.7.2" id="qtip-js-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/plugins/dans-gcal/js/jquery-gcal-flow/jquery.gcal_flow.js?ver=6.7.2" id="gcal-flow-js-js"></script> <script type="text/javascript" src="https://www.google.com/jsapi?ver=6.7.2" id="gcal-flow-jsapi-js-js"></script> <script type="text/javascript" id="simple-banner-script-js-before"> /* <![CDATA[ */ const simpleBannerScriptParams = {"pro_version_enabled":"","debug_mode":false,"id":70,"version":"3.0.4","banner_params":[{"hide_simple_banner":"yes","simple_banner_prepend_element":false,"simple_banner_position":"static","header_margin":"","header_padding":"","wp_body_open_enabled":"","wp_body_open":true,"simple_banner_z_index":false,"simple_banner_text":"Hello, students! <a href=\"https:\/\/www.seas.upenn.edu\/coronavirus\/\">Please follow current COVID guidelines.<\/a>","disabled_on_current_page":false,"disabled_pages_array":[],"is_current_page_a_post":false,"disabled_on_posts":"","simple_banner_disabled_page_paths":false,"simple_banner_font_size":"","simple_banner_color":"#ff652f","simple_banner_text_color":"#353131","simple_banner_link_color":"#0000ff","simple_banner_close_color":"","simple_banner_custom_css":"","simple_banner_scrolling_custom_css":"","simple_banner_text_custom_css":"","simple_banner_button_css":"","site_custom_css":"","keep_site_custom_css":"","site_custom_js":"","keep_site_custom_js":"","close_button_enabled":"","close_button_expiration":"","close_button_cookie_set":false,"current_date":{"date":"2025-03-03 06:53:15.110526","timezone_type":3,"timezone":"UTC"},"start_date":{"date":"2025-03-03 06:53:15.110533","timezone_type":3,"timezone":"UTC"},"end_date":{"date":"2025-03-03 06:53:15.110537","timezone_type":3,"timezone":"UTC"},"simple_banner_start_after_date":false,"simple_banner_remove_after_date":false,"simple_banner_insert_inside_element":false}]} /* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/plugins/simple-banner/simple-banner.js?ver=3.0.4" id="simple-banner-script-js"></script> <script type="text/javascript" id="utils-js-extra"> /* <![CDATA[ */ var userSettings = {"url":"\/","uid":"0","time":"1740984794","secure":"1"}; /* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/utils.min.js?ver=6.7.2" id="utils-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/plupload/moxie.min.js?ver=1.3.5" id="moxiejs-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/plupload/plupload.min.js?ver=2.1.9" id="plupload-js"></script> <!--[if lt IE 8]> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/json2.min.js?ver=2015-05-03" id="json2-js"></script> <![endif]--> <script type="text/javascript" id="__ytprefs__-js-extra"> /* <![CDATA[ */ var _EPYT_ = {"ajaxurl":"https:\/\/detkin.ese.upenn.edu\/wp-admin\/admin-ajax.php","security":"9579ecde68","gallery_scrolloffset":"20","eppathtoscripts":"https:\/\/detkin.ese.upenn.edu\/wp-content\/plugins\/youtube-embed-plus\/scripts\/","eppath":"https:\/\/detkin.ese.upenn.edu\/wp-content\/plugins\/youtube-embed-plus\/","epresponsiveselector":"[\"iframe.__youtube_prefs_widget__\"]","epdovol":"1","version":"14.2.1.3","evselector":"iframe.__youtube_prefs__[src], iframe[src*=\"youtube.com\/embed\/\"], iframe[src*=\"youtube-nocookie.com\/embed\/\"]","ajax_compat":"","maxres_facade":"eager","ytapi_load":"light","pause_others":"","stopMobileBuffer":"1","facade_mode":"","not_live_on_channel":"","vi_active":"","vi_js_posttypes":[]}; /* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/plugins/youtube-embed-plus/scripts/ytprefs.min.js?ver=14.2.1.3" id="__ytprefs__-js"></script> <link rel="https://api.w.org/" href="https://detkin.ese.upenn.edu/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://detkin.ese.upenn.edu/wp-json/wp/v2/pages/70" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://detkin.ese.upenn.edu/xmlrpc.php?rsd" /> <meta name="generator" content="WordPress 6.7.2" /> <link rel="canonical" href="https://detkin.ese.upenn.edu/resources/parts/" /> <link rel='shortlink' href='https://detkin.ese.upenn.edu/?p=70' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="https://detkin.ese.upenn.edu/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdetkin.ese.upenn.edu%2Fresources%2Fparts%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="https://detkin.ese.upenn.edu/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fdetkin.ese.upenn.edu%2Fresources%2Fparts%2F&format=xml" /> <noscript><style type="text/css">.mptt-shortcode-wrapper .mptt-shortcode-table:first-of-type{display:table!important}.mptt-shortcode-wrapper .mptt-shortcode-table .mptt-event-container:hover{height:auto!important;min-height:100%!important}body.mprm_ie_browser .mptt-shortcode-wrapper .mptt-event-container{height:auto!important}@media (max-width:767px){.mptt-shortcode-wrapper .mptt-shortcode-table:first-of-type{display:none!important}}</style></noscript><style id="simple-banner-hide" type="text/css">.simple-banner{display:none;}</style><style id="simple-banner-position" type="text/css">.simple-banner{position:static;}</style><style id="simple-banner-background-color" type="text/css">.simple-banner{background:#ff652f;}</style><style id="simple-banner-text-color" type="text/css">.simple-banner .simple-banner-text{color:#353131;}</style><style id="simple-banner-link-color" type="text/css">.simple-banner .simple-banner-text a{color:#0000ff;}</style><style id="simple-banner-z-index" type="text/css">.simple-banner{z-index: 99999;}</style><style id="simple-banner-site-custom-css-dummy" type="text/css"></style><script id="simple-banner-site-custom-js-dummy" type="text/javascript"></script> <style>img#wpstats{display:none}</style> <link rel="icon" href="https://detkin.ese.upenn.edu/wp-content/uploads/2019/12/cropped-downloadlogo-32x32.jpg" sizes="32x32" /> <link rel="icon" href="https://detkin.ese.upenn.edu/wp-content/uploads/2019/12/cropped-downloadlogo-192x192.jpg" sizes="192x192" /> <link rel="apple-touch-icon" href="https://detkin.ese.upenn.edu/wp-content/uploads/2019/12/cropped-downloadlogo-180x180.jpg" /> <meta name="msapplication-TileImage" content="https://detkin.ese.upenn.edu/wp-content/uploads/2019/12/cropped-downloadlogo-270x270.jpg" /> <style type="text/css" id="wp-custom-css"> /* .menu-item .add-listing.btn.theme-bg { display:none; } .menu-item { display:none; } li.menu-item:last-child { display: none; visibility:hidden; } a {text-decoration:none;} .page-title bg-cover { } .logo-wrapper img.custom-logo { width: 100%; max-width: 300px; height: auto; } #content { padding-top: 3vh; } */ /* conflicting css fot the drop down menu */ .menu-item > .add-listing.btn.theme-bg { display: flex; } /* .menu-item { display:none; } (Commented out) */ #menu-navigation > li.menu-item:last-child { display: none; } a { text-decoration: none; } .logo-wrapper img.custom-logo { width: 100%; max-width: 300px; height: auto; } #content { padding-top: 3vh; } /* Adjusting the height and centering content */ .page-title.bg-cover { height: 10px; display: flex; justify-content: center; align-items: center; flex-direction: column; } .page-title .breadcrumbs-wrap { padding: 10px 0; width: 100%; } .page-title .breadcrumb-title { font-size: 28px; margin-bottom: 10px; } .page-title .breadcrumb { margin-bottom: 0; text-align: center; } .page-title.bg-cover { background-image: url('https://c4.wallpaperflare.com/wallpaper/259/235/829/blue-technology-electric-blue-pattern-wallpaper-preview.jpg') !important; } .kt-row-column-wrap .wp-block-kadence-advancedheading a { color: #ffffff !important; } .common-menu .nav > li > a { font-size: 18px; padding-top: 40px; } .common-menu .sub-menu > li > a { font-size: 14px; } body section.page-title { padding: 70px 0 !important; } .kt-accordion-panel-inner a { color: white; text-decoration: underline; /* font-weight: bold; */ } a { text-decoration: underline; color: black; } .kt-accordion-inner-wrap .kt-svg-icon-list-text strong, .kt-accordion-inner-wrap .kt-svg-icon-list-text strong a { color: black !important; /* } </style> </head> <body class="page-template-default page page-id-70 page-child parent-pageid-96 wp-custom-logo wp-embed-responsive singular mprm_ie_browser"> <!-- #main-wrapper --> <div id="main-wrapper" class="hfeed site fullwidth"> <a class="skip-link screen-reader-text" href="#content">Skip to content</a> <header id="masthead" class="site-header header"> <div class="container"> <div class="main-menu-wrap row clearfix"> <div class="col-sm-6 col-md-3 col-9 align-self-center"> <div class="kitolms-navbar-header"> <div class="logo-wrapper"> <a href="https://detkin.ese.upenn.edu/" class="custom-logo-link" rel="home"><img width="1414" height="257" src="https://detkin.ese.upenn.edu/wp-content/uploads/2024/03/cropped-Penn_Detkin_Logo.png" class="custom-logo" alt="Peter Detkin Lab" decoding="async" fetchpriority="high" srcset="https://detkin.ese.upenn.edu/wp-content/uploads/2024/03/cropped-Penn_Detkin_Logo.png 1414w, https://detkin.ese.upenn.edu/wp-content/uploads/2024/03/cropped-Penn_Detkin_Logo-300x55.png 300w, https://detkin.ese.upenn.edu/wp-content/uploads/2024/03/cropped-Penn_Detkin_Logo-1024x186.png 1024w, https://detkin.ese.upenn.edu/wp-content/uploads/2024/03/cropped-Penn_Detkin_Logo-768x140.png 768w" sizes="(max-width: 1414px) 100vw, 1414px" /></a> </div> </div><!--/#kitolms-navbar-header--> </div><!--/.col-sm-2--> <!-- Mobile Menu in Search --> <div class="mobile-register col-sm-6 col-md-9 col-3 d-lg-none align-self-center align-self-end"> <div class="navbar-header clearfix"> <button id="kitolms-navmenu" class="menu-toggle navbar-toggle kitolms-navmenu-button" aria-controls="primary-menu" aria-expanded="false" data-toggle="collapse" data-target=".navbar-collapse"> <span class="slicknav_icon kitolms-navmenu-button-open"></span> </button> </div> </div> <div class="col-sm-6 col-md-9 col-6 common-menu d-none d-lg-block"> <div id="main-menu" class="main-navigation common-menu-wrap"> <ul id="menu-navigation" class="nav"><li id="menu-item-264" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-264"><a href="https://detkin.ese.upenn.edu/lab-schedules/">Lab Schedules</a></li> <li id="menu-item-75" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-75"><a href="https://detkin.ese.upenn.edu/courses/">Courses</a></li> <li id="menu-item-100" class="menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-menu-ancestor current-menu-parent current-page-parent current_page_parent current_page_ancestor menu-item-has-children menu-item-100"><a href="https://detkin.ese.upenn.edu/resources/">Resources</a> <ul class="sub-menu"> <li id="menu-item-184" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-184"><a href="https://detkin.ese.upenn.edu/request-access/">Access/Forms/Lab Policy</a></li> <li id="menu-item-102" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-70 current_page_item menu-item-102"><a href="https://detkin.ese.upenn.edu/resources/parts/" aria-current="page">Parts/Equipment</a></li> <li id="menu-item-1154" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1154"><a href="https://detkin.ese.upenn.edu/safety/">Lab Safety</a></li> <li id="menu-item-2157" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2157"><a href="https://detkin.ese.upenn.edu/tutorials/">Tutorials</a></li> <li id="menu-item-2443" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2443"><a href="https://detkin.ese.upenn.edu/altium/">Altium</a></li> </ul> </li> <li id="menu-item-2134" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-2134"><a href="https://detkin.ese.upenn.edu/outreach/">Outreach</a> <ul class="sub-menu"> <li id="menu-item-2135" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2135"><a href="https://detkin.ese.upenn.edu/student-clubs/">Student Clubs</a></li> <li id="menu-item-2137" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2137"><a href="https://detkin.ese.upenn.edu/workshops-events/">Workshops & Events</a></li> </ul> </li> <li id="menu-item-2122" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2122"><a href="https://detkin.ese.upenn.edu/media/">Media</a></li> <li id="menu-item-315" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-315"><a href="https://detkin.ese.upenn.edu/about-detkin-lab/">About Detkin Lab</a></li> <li id="menu-item-2442" class="menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-page-parent menu-item-2442"><a href="https://detkin.ese.upenn.edu/resources/">Resources</a></li> <li class="menu-item"> <a href="" class="text-white add-listing btn theme-bg"></a> </li></ul> </div><!--/#main-menu--> </div><!--/.col-sm-9--> <ul id="primary-menu" class="nav navbar-nav nav-menu"> <div id="mobile-menu" class="hidden-lg-up d-lg-none"> <div class="collapse navbar-collapse"> <ul id="menu-navigation-1" class="nav navbar-nav"><li id="menu-item-264" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-264"><a title="Lab Schedules" href="https://detkin.ese.upenn.edu/lab-schedules/">Lab Schedules</a></li> <li id="menu-item-75" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-75"><a title="Courses" href="https://detkin.ese.upenn.edu/courses/">Courses</a></li> <li id="menu-item-100" class="menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-menu-ancestor current-menu-parent current-page-parent current_page_parent current_page_ancestor menu-item-has-children menu-item-100 active active"><a title="Resources" href="https://detkin.ese.upenn.edu/resources/">Resources</a> <button class="menu-toggler collapsed" data-toggle="collapse" data-target=".collapse-100"> <i class="fa fa-angle-right"></i> </button> <ul role="menu" class="collapse collapse-100 "> <li id="menu-item-184" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-184"><a title="Access/Forms/Lab Policy" href="https://detkin.ese.upenn.edu/request-access/">Access/Forms/Lab Policy</a></li> <li id="menu-item-102" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-70 current_page_item menu-item-102 active"><a title="Parts/Equipment" href="https://detkin.ese.upenn.edu/resources/parts/">Parts/Equipment</a></li> <li id="menu-item-1154" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-1154"><a title="Lab Safety" href="https://detkin.ese.upenn.edu/safety/">Lab Safety</a></li> <li id="menu-item-2157" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2157"><a title="Tutorials" href="https://detkin.ese.upenn.edu/tutorials/">Tutorials</a></li> <li id="menu-item-2443" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2443"><a title="Altium" href="https://detkin.ese.upenn.edu/altium/">Altium</a></li> </ul> </li> <li id="menu-item-2134" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-2134"><a title="Outreach" href="https://detkin.ese.upenn.edu/outreach/">Outreach</a> <button class="menu-toggler collapsed" data-toggle="collapse" data-target=".collapse-2134"> <i class="fa fa-angle-right"></i> </button> <ul role="menu" class="collapse collapse-2134 "> <li id="menu-item-2135" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2135"><a title="Student Clubs" href="https://detkin.ese.upenn.edu/student-clubs/">Student Clubs</a></li> <li id="menu-item-2137" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2137"><a title="Workshops & Events" href="https://detkin.ese.upenn.edu/workshops-events/">Workshops & Events</a></li> </ul> </li> <li id="menu-item-2122" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-2122"><a title="Media" href="https://detkin.ese.upenn.edu/media/">Media</a></li> <li id="menu-item-315" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-315"><a title="About Detkin Lab" href="https://detkin.ese.upenn.edu/about-detkin-lab/">About Detkin Lab</a></li> <li id="menu-item-2442" class="menu-item menu-item-type-post_type menu-item-object-page current-page-ancestor current-page-parent menu-item-2442"><a title="Resources" href="https://detkin.ese.upenn.edu/resources/">Resources</a></li> <li class="menu-item"> <a href="" class="text-white add-listing btn theme-bg"></a> </li></ul> </div> </div><!--/.#mobile-menu--> </ul> </div><!--/.main-menu-wrap--> </div><!--/.container--> </header><!--/.header--> <!-- End Navigation --> <div class="clearfix"></div> <section class="page-title bg-cover" style="background-image:url(https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/images/banner.jpg); background-size: cover; background-position: 50% 50%;" data-overlay="8"> <div class="container"> <div class="row"> <div class="col-lg-12 col-md-12"> <div class="breadcrumbs-wrap"> <h1 class="breadcrumb-title">Parts/Equipment</h1> <nav class="transparent"> <ol class="breadcrumb p-0"> <li class="breadcrumb-item"><a href="https://detkin.ese.upenn.edu" class="breadcrumb_home">Home</a></li> <li class="breadcrumb-item active theme-cl"> <span> Parts/Equipment </span> </li> </ol> </nav> </div> </div> </div> </div> </section> <section id="content"> <div class="container"> <div class="row align-items-center justify-content-between"> <div class="col-xl-12 col-lg-12 col-md-12 col-sm-12"> <div class="lmp_caption"> <div id="post-70" class="post-70 page type-page status-publish hentry"> <div class="entry-content wrap"> <figure class="wp-block-image"><img decoding="async" width="5795" height="1616" src="https://detkin.ese.upenn.edu/wp-content/uploads/2018/09/Detkin-06700-2.jpg" alt="" class="wp-image-343" srcset="https://detkin.ese.upenn.edu/wp-content/uploads/2018/09/Detkin-06700-2.jpg 5795w, https://detkin.ese.upenn.edu/wp-content/uploads/2018/09/Detkin-06700-2-300x84.jpg 300w, https://detkin.ese.upenn.edu/wp-content/uploads/2018/09/Detkin-06700-2-768x214.jpg 768w, https://detkin.ese.upenn.edu/wp-content/uploads/2018/09/Detkin-06700-2-1024x286.jpg 1024w" sizes="(max-width: 5795px) 100vw, 5795px" /></figure> <h2 class="wp-block-heading">Parts</h2> <p class="has-text-align-left">In the Detkin lab, you will find resistors, capacitors, LEDs, buttons, switches, audio connectors, inductors, MOSFETs, Arduinos, wires, couplers, and more.聽Parts can be found in the parts drawers at the front of Detkin Lab and in the lab office.</p> <p class="has-text-align-left"><strong>If you need parts from inside the office, please ask a staff member for assistance. You will need to fill out our form since this is considered a parts loan. </strong></p> <p class="has-text-align-left">If you need parts for a project that we do not have in stock, the same form includes a link for <a rel="noreferrer noopener" href="https://docs.google.com/spreadsheets/d/1ygHaj2I41mHeQuPMJzPTjBf50Cl_ItKd3blFAZX_7gI/edit#gid=2001017823" target="_blank">a spreadsheet</a><strong> </strong>you should copy and fill out so we can order the parts for you. </p> <h4 class="wp-block-heading"><strong>Not Sure What You Need?</strong></h4> <p>Check out <a href="http://www.ladyada.net/wiki/partfinder">LadyAda’s Partfinder Wiki</a> to explore commonly used parts.</p> <p class="has-text-align-left"><em>If you have specific questions about part availability please contact one of the lab faculty or teaching assistants. Unique parts may be ordered upon request.</em></p> <div class="wp-block-kadence-spacer aligncenter kt-block-spacer-70_492d54-81"><div class="kt-block-spacer kt-block-spacer-halign-center"><hr class="kt-divider"/></div></div> <figure class="wp-block-image size-full"><img decoding="async" width="1280" height="720" src="https://detkin.ese.upenn.edu/wp-content/uploads/2022/03/Slide1-1.jpg" alt="" class="wp-image-1298" srcset="https://detkin.ese.upenn.edu/wp-content/uploads/2022/03/Slide1-1.jpg 1280w, https://detkin.ese.upenn.edu/wp-content/uploads/2022/03/Slide1-1-300x169.jpg 300w, https://detkin.ese.upenn.edu/wp-content/uploads/2022/03/Slide1-1-1024x576.jpg 1024w, https://detkin.ese.upenn.edu/wp-content/uploads/2022/03/Slide1-1-768x432.jpg 768w" sizes="(max-width: 1280px) 100vw, 1280px" /></figure> <h2 class="wp-block-heading">Equipment </h2> <p>Lab equipment includes desktop computers/industry software, oscilloscopes, power supplies, waveform generators and more.</p> <div class="wp-block-kadence-spacer aligncenter kt-block-spacer-70_133200-ae"><div class="kt-block-spacer kt-block-spacer-halign-center"><hr class="kt-divider"/></div></div> <h4 class="kt-adv-heading70_7055d4-f9 wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading70_7055d4-f9"><strong>Keysight <a rel="noreferrer noopener" href="https://www.keysight.com/us/en/product/MSO7034B/mixed-signal-oscilloscope-350mhz-4-analog-16-digital-channels.html" target="_blank">MSO 7034B </a>scope. Suggested tutorials (needs Keysight account signup) Probe <a href="https://learn.keysight.com/learn/course/22/play/202/select-the-right-probe-bandwidth">Tutorial 1</a>, <a href="https://learn.keysight.com/learn/course/23/oscilloscope-probes-201">2</a></strong></h4> <div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:42% auto"><figure class="wp-block-media-text__media"><img decoding="async" width="1024" height="732" src="https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-3-1024x732.png" alt="" class="wp-image-1697 size-full" srcset="https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-3-1024x732.png 1024w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-3-300x214.png 300w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-3-768x549.png 768w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-3.png 1164w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure><div class="wp-block-media-text__content"> <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper"> <iframe loading="lazy" id="_ytid_88198" width="1140" height="641" data-origwidth="1140" data-origheight="641" data-relstop="1" src="https://www.youtube.com/embed/t_UTV_9dpTc?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&modestbranding=1&rel=0&fs=1&playsinline=1&autohide=2&theme=dark&color=red&controls=1&" class="__youtube_prefs__ epyt-is-override no-lazyload" title="YouTube player" allow="fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""></iframe> </div></figure> <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper"> <iframe loading="lazy" id="_ytid_47978" width="1140" height="641" data-origwidth="1140" data-origheight="641" data-relstop="1" src="https://www.youtube.com/embed/4iZLt0PcRCQ?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&modestbranding=1&rel=0&fs=1&playsinline=1&autohide=2&theme=dark&color=red&controls=1&" class="__youtube_prefs__ epyt-is-override no-lazyload" title="YouTube player" allow="fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""></iframe> </div></figure> </div></div> <div class="wp-block-kadence-spacer aligncenter kt-block-spacer-70_13cfa1-65"><div class="kt-block-spacer kt-block-spacer-halign-center"><hr class="kt-divider"/></div></div> <h4 class="kt-adv-heading70_8ca548-48 wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading70_8ca548-48"><strong>Keysight <a rel="noreferrer noopener" href="https://www.keysight.com/us/en/product/E3631A/80w-triple-output-power-supply-6v-5a--25v-1a.html" target="_blank">3631A</a> Triple Output Supply</strong></h4> <div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:42% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="1024" height="574" src="https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-1024x574.png" alt="" class="wp-image-1693 size-full" srcset="https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-1024x574.png 1024w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-300x168.png 300w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-768x430.png 768w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download.png 1470w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><div class="wp-block-media-text__content"> <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper"> <iframe loading="lazy" id="_ytid_73692" width="1140" height="641" data-origwidth="1140" data-origheight="641" data-relstop="1" src="https://www.youtube.com/embed/8F5wGR45BOk?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&modestbranding=1&rel=0&fs=1&playsinline=1&autohide=2&theme=dark&color=red&controls=1&" class="__youtube_prefs__ epyt-is-override no-lazyload" title="YouTube player" allow="fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""></iframe> </div></figure> <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper"> <iframe loading="lazy" id="_ytid_92192" width="1140" height="641" data-origwidth="1140" data-origheight="641" data-relstop="1" src="https://www.youtube.com/embed/5ZxPFVS-muI?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&modestbranding=1&rel=0&fs=1&playsinline=1&autohide=2&theme=dark&color=red&controls=1&" class="__youtube_prefs__ epyt-is-override no-lazyload" title="YouTube player" allow="fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""></iframe> </div></figure> </div></div> <div class="wp-block-kadence-spacer aligncenter kt-block-spacer-70_351ac6-c2"><div class="kt-block-spacer kt-block-spacer-halign-center"><hr class="kt-divider"/></div></div> <h4 class="kt-adv-heading70_a5f9e4-c1 wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading70_a5f9e4-c1"><strong>Keysight <a rel="noreferrer noopener" href="https://www.keysight.com/us/en/support/U8002A/dc-power-supply-30v-5a.html" target="_blank">U8002A</a> Single Power Supply</strong></h4> <div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:42% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="582" height="386" src="https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-1.png" alt="" class="wp-image-1694 size-full" srcset="https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-1.png 582w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-1-300x199.png 300w" sizes="auto, (max-width: 582px) 100vw, 582px" /></figure><div class="wp-block-media-text__content"> <p><strong>Keysight <a rel="noreferrer noopener" href="https://www.keysight.com/us/en/support/U8002A/dc-power-supply-30v-5a.html" target="_blank">U8002A</a> Single Power Supply</strong></p> </div></div> <div class="wp-block-kadence-spacer aligncenter kt-block-spacer-70_248dd1-22"><div class="kt-block-spacer kt-block-spacer-halign-center"><hr class="kt-divider"/></div></div> <h4 class="kt-adv-heading70_5ecd01-92 wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading70_5ecd01-92"><strong>Keysight Arbitrary Waveform Generator <a rel="noreferrer noopener" href="https://www.keysight.com/us/en/product/33521A/function--arbitrary-waveform-generator-30-mhz.html" target="_blank">33521A</a></strong></h4> <div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:42% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="1024" height="508" src="https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-2-1024x508.png" alt="" class="wp-image-1696 size-full" srcset="https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-2-1024x508.png 1024w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-2-300x149.png 300w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-2-768x381.png 768w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-2.png 1164w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><div class="wp-block-media-text__content"> <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper"> <iframe loading="lazy" id="_ytid_67814" width="1140" height="641" data-origwidth="1140" data-origheight="641" data-relstop="1" src="https://www.youtube.com/embed/jzaO4LF-p08?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&modestbranding=1&rel=0&fs=1&playsinline=1&autohide=2&theme=dark&color=red&controls=1&" class="__youtube_prefs__ epyt-is-override no-lazyload" title="YouTube player" allow="fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""></iframe> </div></figure> <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper"> <iframe loading="lazy" id="_ytid_30129" width="1140" height="641" data-origwidth="1140" data-origheight="641" data-relstop="1" src="https://www.youtube.com/embed/4iZLt0PcRCQ?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&modestbranding=1&rel=0&fs=1&playsinline=1&autohide=2&theme=dark&color=red&controls=1&" class="__youtube_prefs__ epyt-is-override no-lazyload" title="YouTube player" allow="fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""></iframe> </div></figure> </div></div> <div class="wp-block-kadence-spacer aligncenter kt-block-spacer-70_30f2cd-23"><div class="kt-block-spacer kt-block-spacer-halign-center"><hr class="kt-divider"/></div></div> <h4 class="kt-adv-heading70_d2e84c-53 wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading70_d2e84c-53"><strong>Keysight Function Generator <a rel="noreferrer noopener" href="https://www.keysight.com/us/en/product/33120A/function--arbitrary-waveform-generator-15-mhz.html" target="_blank">33120A</a></strong></h4> <div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:42% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="700" height="700" src="https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/33120a_u_2e13.webp" alt="" class="wp-image-1700 size-full" srcset="https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/33120a_u_2e13.webp 700w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/33120a_u_2e13-300x300.webp 300w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/33120a_u_2e13-150x150.webp 150w" sizes="auto, (max-width: 700px) 100vw, 700px" /></figure><div class="wp-block-media-text__content"> <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper"> <iframe loading="lazy" id="_ytid_29182" width="1140" height="641" data-origwidth="1140" data-origheight="641" data-relstop="1" src="https://www.youtube.com/embed/LV3mGJVpF2k?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&modestbranding=1&rel=0&fs=1&playsinline=1&autohide=2&theme=dark&color=red&controls=1&" class="__youtube_prefs__ epyt-is-override no-lazyload" title="YouTube player" allow="fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""></iframe> </div><figcaption class="wp-element-caption">A quick overview of functions of DMM</figcaption></figure> <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper"> <iframe loading="lazy" id="_ytid_98642" width="1140" height="641" data-origwidth="1140" data-origheight="641" data-relstop="1" src="https://www.youtube.com/embed/4iZLt0PcRCQ?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&modestbranding=1&rel=0&fs=1&playsinline=1&autohide=2&theme=dark&color=red&controls=1&" class="__youtube_prefs__ epyt-is-override no-lazyload" title="YouTube player" allow="fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""></iframe> </div></figure> </div></div> <div class="wp-block-kadence-spacer aligncenter kt-block-spacer-70_da2cd6-cb"><div class="kt-block-spacer kt-block-spacer-halign-center"><hr class="kt-divider"/></div></div> <h4 class="kt-adv-heading70_1928f3-12 wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading70_1928f3-12"><strong>Keysight DMM</strong><a rel="noreferrer noopener" href="https://www.keysight.com/us/en/product/34401A/digital-multimeter-6-digit.html" target="_blank"> 34401A</a></h4> <div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:42% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="1024" height="552" src="https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-4-1024x552.png" alt="" class="wp-image-1701 size-full" srcset="https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-4-1024x552.png 1024w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-4-300x162.png 300w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-4-768x414.png 768w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/09/download-4.png 1164w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure><div class="wp-block-media-text__content"> <figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper"> <iframe loading="lazy" id="_ytid_39428" width="1140" height="641" data-origwidth="1140" data-origheight="641" data-relstop="1" src="https://www.youtube.com/embed/Or-M7_bCZbk?enablejsapi=1&autoplay=0&cc_load_policy=0&cc_lang_pref=&iv_load_policy=1&loop=0&modestbranding=1&rel=0&fs=1&playsinline=1&autohide=2&theme=dark&color=red&controls=1&" class="__youtube_prefs__ epyt-is-override no-lazyload" title="YouTube player" allow="fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen data-no-lazy="1" data-skipgform_ajax_framebjll=""></iframe> </div></figure> </div></div> <div class="wp-block-kadence-spacer aligncenter kt-block-spacer-70_5f5736-ff"><div class="kt-block-spacer kt-block-spacer-halign-center"><hr class="kt-divider"/></div></div> <h4 class="kt-adv-heading70_641ce8-7f wp-block-kadence-advancedheading" data-kb-block="kb-adv-heading70_641ce8-7f">Analog Discovery</h4> <div class="wp-block-media-text is-stacked-on-mobile" style="grid-template-columns:42% auto"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="970" height="728" src="https://detkin.ese.upenn.edu/wp-content/uploads/2023/10/4652-14.jpg" alt="" class="wp-image-2019 size-full" srcset="https://detkin.ese.upenn.edu/wp-content/uploads/2023/10/4652-14.jpg 970w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/10/4652-14-300x225.jpg 300w, https://detkin.ese.upenn.edu/wp-content/uploads/2023/10/4652-14-768x576.jpg 768w" sizes="auto, (max-width: 970px) 100vw, 970px" /></figure><div class="wp-block-media-text__content"> <p>Analog Discovery is used in several introductory classes like ESE 1120 (Electromagnetics) and ESE 2150 (circuits 1) . </p> <p>Take a look at the <a href="https://drive.google.com/file/d/1J-_9LVxlaYmNA9V7MBWvp8jNfy9BeFGT/view">Introductory video</a></p> </div></div> <div class="wp-block-kadence-spacer aligncenter kt-block-spacer-70_59eb58-c4"><div class="kt-block-spacer kt-block-spacer-halign-center"><hr class="kt-divider"/></div></div> <p><strong>Please ensure that you use all lab equipment responsibly. It is also best to work with a partner after hours.</strong></p> <p>In addition to the instruments associated with each lab workstation, the lab has a wide range of other instruments and tools available.</p> <p><em>Consult lab faculty with questions regarding equipment use and also refer to the video tutorials listed under Resources.</em> </p> </div> </div> </div> </div> </div> </div> </section> <!-- ============================ Footer Start ================================== --> <footer class="dark-footer skin-dark-footer style-1"> <div class="footer-bottom"> <div class="container"> <div class="row align-items-center"> <div class="col-lg-12 col-md-12 text-center"> <p class="mb-0"> Proudly powered by KITOLMS. All Rights Reserved. </p> </div> </div> </div> </div> </footer> <!-- ============================ Footer End ================================== --> <a id="back2Top" class="top-scroll" title="Back to top" href="#"><i class="ti-arrow-up"></i></a> </div> <div class="simple-banner simple-banner-text" style="display:none !important"></div><!-- Instagram Feed JS --> <script type="text/javascript"> var sbiajaxurl = "https://detkin.ese.upenn.edu/wp-admin/admin-ajax.php"; </script> <script type="text/html" id="tmpl-media-frame"> <div class="media-frame-title" id="media-frame-title"></div> <h2 class="media-frame-menu-heading">Actions</h2> <button type="button" class="button button-link media-frame-menu-toggle" aria-expanded="false"> Menu <span class="dashicons dashicons-arrow-down" aria-hidden="true"></span> </button> <div class="media-frame-menu"></div> <div class="media-frame-tab-panel"> <div class="media-frame-router"></div> <div class="media-frame-content"></div> </div> <h2 class="media-frame-actions-heading screen-reader-text"> Selected media actions </h2> <div class="media-frame-toolbar"></div> <div class="media-frame-uploader"></div> </script> <script type="text/html" id="tmpl-media-modal"> <div tabindex="0" class="media-modal wp-core-ui" role="dialog" aria-labelledby="media-frame-title"> <# if ( data.hasCloseButton ) { #> <button type="button" class="media-modal-close"><span class="media-modal-icon"><span class="screen-reader-text"> Close dialog </span></span></button> <# } #> <div class="media-modal-content" role="document"></div> </div> <div class="media-modal-backdrop"></div> </script> <script type="text/html" id="tmpl-uploader-window"> <div class="uploader-window-content"> <div class="uploader-editor-title">Drop files to upload</div> </div> </script> <script type="text/html" id="tmpl-uploader-editor"> <div class="uploader-editor-content"> <div class="uploader-editor-title">Drop files to upload</div> </div> </script> <script type="text/html" id="tmpl-uploader-inline"> <# var messageClass = data.message ? 'has-upload-message' : 'no-upload-message'; #> <# if ( data.canClose ) { #> <button class="close dashicons dashicons-no"><span class="screen-reader-text"> Close uploader </span></button> <# } #> <div class="uploader-inline-content {{ messageClass }}"> <# if ( data.message ) { #> <h2 class="upload-message">{{ data.message }}</h2> <# } #> <div class="upload-ui"> <h2 class="upload-instructions drop-instructions">Drop files to upload</h2> <p class="upload-instructions drop-instructions">or</p> <button type="button" class="browser button button-hero" aria-labelledby="post-upload-info">Select Files</button> </div> <div class="upload-inline-status"></div> <div class="post-upload-ui" id="post-upload-info"> <p class="max-upload-size"> Maximum upload file size: 100 MB. </p> <# if ( data.suggestedWidth && data.suggestedHeight ) { #> <p class="suggested-dimensions"> Suggested image dimensions: {{data.suggestedWidth}} by {{data.suggestedHeight}} pixels. </p> <# } #> </div> </div> </script> <script type="text/html" id="tmpl-media-library-view-switcher"> <a href="https://detkin.ese.upenn.edu/wp-admin/upload.php?mode=list" class="view-list"> <span class="screen-reader-text"> List view </span> </a> <a href="https://detkin.ese.upenn.edu/wp-admin/upload.php?mode=grid" class="view-grid current" aria-current="page"> <span class="screen-reader-text"> Grid view </span> </a> </script> <script type="text/html" id="tmpl-uploader-status"> <h2>Uploading</h2> <div class="media-progress-bar"><div></div></div> <div class="upload-details"> <span class="upload-count"> <span class="upload-index"></span> / <span class="upload-total"></span> </span> <span class="upload-detail-separator">–</span> <span class="upload-filename"></span> </div> <div class="upload-errors"></div> <button type="button" class="button upload-dismiss-errors">Dismiss errors</button> </script> <script type="text/html" id="tmpl-uploader-status-error"> <span class="upload-error-filename">{{{ data.filename }}}</span> <span class="upload-error-message">{{ data.message }}</span> </script> <script type="text/html" id="tmpl-edit-attachment-frame"> <div class="edit-media-header"> <button class="left dashicons"<# if ( ! data.hasPrevious ) { #> disabled<# } #>><span class="screen-reader-text">Edit previous media item</span></button> <button class="right dashicons"<# if ( ! data.hasNext ) { #> disabled<# } #>><span class="screen-reader-text">Edit next media item</span></button> <button type="button" class="media-modal-close"><span class="media-modal-icon"><span class="screen-reader-text">Close dialog</span></span></button> </div> <div class="media-frame-title"></div> <div class="media-frame-content"></div> </script> <script type="text/html" id="tmpl-attachment-details-two-column"> <div class="attachment-media-view {{ data.orientation }}"> <h2 class="screen-reader-text">Attachment Preview</h2> <div class="thumbnail thumbnail-{{ data.type }}"> <# if ( data.uploading ) { #> <div class="media-progress-bar"><div></div></div> <# } else if ( data.sizes && data.sizes.full ) { #> <img class="details-image" src="{{ data.sizes.full.url }}" draggable="false" alt="" /> <# } else if ( data.sizes && data.sizes.large ) { #> <img class="details-image" src="{{ data.sizes.large.url }}" draggable="false" alt="" /> <# } else if ( -1 === jQuery.inArray( data.type, [ 'audio', 'video' ] ) ) { #> <img class="details-image icon" src="{{ data.icon }}" draggable="false" alt="" /> <# } #> <# if ( 'audio' === data.type ) { #> <div class="wp-media-wrapper wp-audio"> <audio style="visibility: hidden" controls class="wp-audio-shortcode" width="100%" preload="none"> <source type="{{ data.mime }}" src="{{ data.url }}" /> </audio> </div> <# } else if ( 'video' === data.type ) { var w_rule = ''; if ( data.width ) { w_rule = 'width: ' + data.width + 'px;'; } else if ( wp.media.view.settings.contentWidth ) { w_rule = 'width: ' + wp.media.view.settings.contentWidth + 'px;'; } #> <div style="{{ w_rule }}" class="wp-media-wrapper wp-video"> <video controls="controls" class="wp-video-shortcode" preload="metadata" <# if ( data.width ) { #>width="{{ data.width }}"<# } #> <# if ( data.height ) { #>height="{{ data.height }}"<# } #> <# if ( data.image && data.image.src !== data.icon ) { #>poster="{{ data.image.src }}"<# } #>> <source type="{{ data.mime }}" src="{{ data.url }}" /> </video> </div> <# } #> <div class="attachment-actions"> <# if ( 'image' === data.type && ! data.uploading && data.sizes && data.can.save ) { #> <button type="button" class="button edit-attachment">Edit Image</button> <# } else if ( 'pdf' === data.subtype && data.sizes ) { #> <p>Document Preview</p> <# } #> </div> </div> </div> <div class="attachment-info"> <span class="settings-save-status" role="status"> <span class="spinner"></span> <span class="saved">Saved.</span> </span> <div class="details"> <h2 class="screen-reader-text"> Details </h2> <div class="uploaded"><strong>Uploaded on:</strong> {{ data.dateFormatted }}</div> <div class="uploaded-by"> <strong>Uploaded by:</strong> <# if ( data.authorLink ) { #> <a href="{{ data.authorLink }}">{{ data.authorName }}</a> <# } else { #> {{ data.authorName }} <# } #> </div> <# if ( data.uploadedToTitle ) { #> <div class="uploaded-to"> <strong>Uploaded to:</strong> <# if ( data.uploadedToLink ) { #> <a href="{{ data.uploadedToLink }}">{{ data.uploadedToTitle }}</a> <# } else { #> {{ data.uploadedToTitle }} <# } #> </div> <# } #> <div class="filename"><strong>File name:</strong> {{ data.filename }}</div> <div class="file-type"><strong>File type:</strong> {{ data.mime }}</div> <div class="file-size"><strong>File size:</strong> {{ data.filesizeHumanReadable }}</div> <# if ( 'image' === data.type && ! data.uploading ) { #> <# if ( data.width && data.height ) { #> <div class="dimensions"><strong>Dimensions:</strong> {{ data.width }} by {{ data.height }} pixels </div> <# } #> <# if ( data.originalImageURL && data.originalImageName ) { #> <div class="word-wrap-break-word"> <strong>Original image:</strong> <a href="{{ data.originalImageURL }}">{{data.originalImageName}}</a> </div> <# } #> <# } #> <# if ( data.fileLength && data.fileLengthHumanReadable ) { #> <div class="file-length"><strong>Length:</strong> <span aria-hidden="true">{{ data.fileLengthHumanReadable }}</span> <span class="screen-reader-text">{{ data.fileLengthHumanReadable }}</span> </div> <# } #> <# if ( 'audio' === data.type && data.meta.bitrate ) { #> <div class="bitrate"> <strong>Bitrate:</strong> {{ Math.round( data.meta.bitrate / 1000 ) }}kb/s <# if ( data.meta.bitrate_mode ) { #> {{ ' ' + data.meta.bitrate_mode.toUpperCase() }} <# } #> </div> <# } #> <# if ( data.mediaStates ) { #> <div class="media-states"><strong>Used as:</strong> {{ data.mediaStates }}</div> <# } #> <div class="compat-meta"> <# if ( data.compat && data.compat.meta ) { #> {{{ data.compat.meta }}} <# } #> </div> </div> <div class="settings"> <# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #> <# if ( 'image' === data.type ) { #> <span class="setting alt-text has-description" data-setting="alt"> <label for="attachment-details-two-column-alt-text" class="name">Alternative Text</label> <textarea id="attachment-details-two-column-alt-text" aria-describedby="alt-text-description" {{ maybeReadOnly }}>{{ data.alt }}</textarea> </span> <p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span></a>. Leave empty if the image is purely decorative.</p> <# } #> <span class="setting" data-setting="title"> <label for="attachment-details-two-column-title" class="name">Title</label> <input type="text" id="attachment-details-two-column-title" value="{{ data.title }}" {{ maybeReadOnly }} /> </span> <# if ( 'audio' === data.type ) { #> <span class="setting" data-setting="artist"> <label for="attachment-details-two-column-artist" class="name">Artist</label> <input type="text" id="attachment-details-two-column-artist" value="{{ data.artist || data.meta.artist || '' }}" /> </span> <span class="setting" data-setting="album"> <label for="attachment-details-two-column-album" class="name">Album</label> <input type="text" id="attachment-details-two-column-album" value="{{ data.album || data.meta.album || '' }}" /> </span> <# } #> <span class="setting" data-setting="caption"> <label for="attachment-details-two-column-caption" class="name">Caption</label> <textarea id="attachment-details-two-column-caption" {{ maybeReadOnly }}>{{ data.caption }}</textarea> </span> <span class="setting" data-setting="description"> <label for="attachment-details-two-column-description" class="name">Description</label> <textarea id="attachment-details-two-column-description" {{ maybeReadOnly }}>{{ data.description }}</textarea> </span> <span class="setting" data-setting="url"> <label for="attachment-details-two-column-copy-link" class="name">File URL:</label> <input type="text" class="attachment-details-copy-link" id="attachment-details-two-column-copy-link" value="{{ data.url }}" readonly /> <span class="copy-to-clipboard-container"> <button type="button" class="button button-small copy-attachment-url" data-clipboard-target="#attachment-details-two-column-copy-link">Copy URL to clipboard</button> <span class="success hidden" aria-hidden="true">Copied!</span> </span> </span> <div class="attachment-compat"></div> </div> <div class="actions"> <# if ( data.link ) { #> <a class="view-attachment" href="{{ data.link }}">View attachment page</a> <# } #> <# if ( data.can.save ) { #> <# if ( data.link ) { #> <span class="links-separator">|</span> <# } #> <a href="{{ data.editLink }}">Edit more details</a> <# } #> <# if ( data.can.save && data.link ) { #> <span class="links-separator">|</span> <a href="{{ data.url }}" download>Download file</a> <# } #> <# if ( ! data.uploading && data.can.remove ) { #> <# if ( data.link || data.can.save ) { #> <span class="links-separator">|</span> <# } #> <button type="button" class="button-link delete-attachment">Delete permanently</button> <# } #> </div> </div> </script> <script type="text/html" id="tmpl-attachment"> <div class="attachment-preview js--select-attachment type-{{ data.type }} subtype-{{ data.subtype }} {{ data.orientation }}"> <div class="thumbnail"> <# if ( data.uploading ) { #> <div class="media-progress-bar"><div style="width: {{ data.percent }}%"></div></div> <# } else if ( 'image' === data.type && data.size && data.size.url ) { #> <div class="centered"> <img src="{{ data.size.url }}" draggable="false" alt="" /> </div> <# } else { #> <div class="centered"> <# if ( data.image && data.image.src && data.image.src !== data.icon ) { #> <img src="{{ data.image.src }}" class="thumbnail" draggable="false" alt="" /> <# } else if ( data.sizes ) { if ( data.sizes.medium ) { #> <img src="{{ data.sizes.medium.url }}" class="thumbnail" draggable="false" alt="" /> <# } else { #> <img src="{{ data.sizes.full.url }}" class="thumbnail" draggable="false" alt="" /> <# } #> <# } else { #> <img src="{{ data.icon }}" class="icon" draggable="false" alt="" /> <# } #> </div> <div class="filename"> <div>{{ data.filename }}</div> </div> <# } #> </div> <# if ( data.buttons.close ) { #> <button type="button" class="button-link attachment-close media-modal-icon"><span class="screen-reader-text"> Remove </span></button> <# } #> </div> <# if ( data.buttons.check ) { #> <button type="button" class="check" tabindex="-1"><span class="media-modal-icon"></span><span class="screen-reader-text"> Deselect </span></button> <# } #> <# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; if ( data.describe ) { if ( 'image' === data.type ) { #> <input type="text" value="{{ data.caption }}" class="describe" data-setting="caption" aria-label="Caption" placeholder="Caption…" {{ maybeReadOnly }} /> <# } else { #> <input type="text" value="{{ data.title }}" class="describe" data-setting="title" <# if ( 'video' === data.type ) { #> aria-label="Video title" placeholder="Video title…" <# } else if ( 'audio' === data.type ) { #> aria-label="Audio title" placeholder="Audio title…" <# } else { #> aria-label="Media title" placeholder="Media title…" <# } #> {{ maybeReadOnly }} /> <# } } #> </script> <script type="text/html" id="tmpl-attachment-details"> <h2> Attachment Details <span class="settings-save-status" role="status"> <span class="spinner"></span> <span class="saved">Saved.</span> </span> </h2> <div class="attachment-info"> <# if ( 'audio' === data.type ) { #> <div class="wp-media-wrapper wp-audio"> <audio style="visibility: hidden" controls class="wp-audio-shortcode" width="100%" preload="none"> <source type="{{ data.mime }}" src="{{ data.url }}" /> </audio> </div> <# } else if ( 'video' === data.type ) { var w_rule = ''; if ( data.width ) { w_rule = 'width: ' + data.width + 'px;'; } else if ( wp.media.view.settings.contentWidth ) { w_rule = 'width: ' + wp.media.view.settings.contentWidth + 'px;'; } #> <div style="{{ w_rule }}" class="wp-media-wrapper wp-video"> <video controls="controls" class="wp-video-shortcode" preload="metadata" <# if ( data.width ) { #>width="{{ data.width }}"<# } #> <# if ( data.height ) { #>height="{{ data.height }}"<# } #> <# if ( data.image && data.image.src !== data.icon ) { #>poster="{{ data.image.src }}"<# } #>> <source type="{{ data.mime }}" src="{{ data.url }}" /> </video> </div> <# } else { #> <div class="thumbnail thumbnail-{{ data.type }}"> <# if ( data.uploading ) { #> <div class="media-progress-bar"><div></div></div> <# } else if ( 'image' === data.type && data.size && data.size.url ) { #> <img src="{{ data.size.url }}" draggable="false" alt="" /> <# } else { #> <img src="{{ data.icon }}" class="icon" draggable="false" alt="" /> <# } #> </div> <# } #> <div class="details"> <div class="filename">{{ data.filename }}</div> <div class="uploaded">{{ data.dateFormatted }}</div> <div class="file-size">{{ data.filesizeHumanReadable }}</div> <# if ( 'image' === data.type && ! data.uploading ) { #> <# if ( data.width && data.height ) { #> <div class="dimensions"> {{ data.width }} by {{ data.height }} pixels </div> <# } #> <# if ( data.originalImageURL && data.originalImageName ) { #> <div class="word-wrap-break-word"> Original image: <a href="{{ data.originalImageURL }}">{{data.originalImageName}}</a> </div> <# } #> <# if ( data.can.save && data.sizes ) { #> <a class="edit-attachment" href="{{ data.editLink }}&image-editor" target="_blank">Edit Image</a> <# } #> <# } #> <# if ( data.fileLength && data.fileLengthHumanReadable ) { #> <div class="file-length">Length: <span aria-hidden="true">{{ data.fileLengthHumanReadable }}</span> <span class="screen-reader-text">{{ data.fileLengthHumanReadable }}</span> </div> <# } #> <# if ( data.mediaStates ) { #> <div class="media-states"><strong>Used as:</strong> {{ data.mediaStates }}</div> <# } #> <# if ( ! data.uploading && data.can.remove ) { #> <button type="button" class="button-link delete-attachment">Delete permanently</button> <# } #> <div class="compat-meta"> <# if ( data.compat && data.compat.meta ) { #> {{{ data.compat.meta }}} <# } #> </div> </div> </div> <# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #> <# if ( 'image' === data.type ) { #> <span class="setting alt-text has-description" data-setting="alt"> <label for="attachment-details-alt-text" class="name">Alt Text</label> <textarea id="attachment-details-alt-text" aria-describedby="alt-text-description" {{ maybeReadOnly }}>{{ data.alt }}</textarea> </span> <p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span></a>. Leave empty if the image is purely decorative.</p> <# } #> <span class="setting" data-setting="title"> <label for="attachment-details-title" class="name">Title</label> <input type="text" id="attachment-details-title" value="{{ data.title }}" {{ maybeReadOnly }} /> </span> <# if ( 'audio' === data.type ) { #> <span class="setting" data-setting="artist"> <label for="attachment-details-artist" class="name">Artist</label> <input type="text" id="attachment-details-artist" value="{{ data.artist || data.meta.artist || '' }}" /> </span> <span class="setting" data-setting="album"> <label for="attachment-details-album" class="name">Album</label> <input type="text" id="attachment-details-album" value="{{ data.album || data.meta.album || '' }}" /> </span> <# } #> <span class="setting" data-setting="caption"> <label for="attachment-details-caption" class="name">Caption</label> <textarea id="attachment-details-caption" {{ maybeReadOnly }}>{{ data.caption }}</textarea> </span> <span class="setting" data-setting="description"> <label for="attachment-details-description" class="name">Description</label> <textarea id="attachment-details-description" {{ maybeReadOnly }}>{{ data.description }}</textarea> </span> <span class="setting" data-setting="url"> <label for="attachment-details-copy-link" class="name">File URL:</label> <input type="text" class="attachment-details-copy-link" id="attachment-details-copy-link" value="{{ data.url }}" readonly /> <div class="copy-to-clipboard-container"> <button type="button" class="button button-small copy-attachment-url" data-clipboard-target="#attachment-details-copy-link">Copy URL to clipboard</button> <span class="success hidden" aria-hidden="true">Copied!</span> </div> </span> </script> <script type="text/html" id="tmpl-media-selection"> <div class="selection-info"> <span class="count"></span> <# if ( data.editable ) { #> <button type="button" class="button-link edit-selection">Edit Selection</button> <# } #> <# if ( data.clearable ) { #> <button type="button" class="button-link clear-selection">Clear</button> <# } #> </div> <div class="selection-view"></div> </script> <script type="text/html" id="tmpl-attachment-display-settings"> <h2>Attachment Display Settings</h2> <# if ( 'image' === data.type ) { #> <span class="setting align"> <label for="attachment-display-settings-alignment" class="name">Alignment</label> <select id="attachment-display-settings-alignment" class="alignment" data-setting="align" <# if ( data.userSettings ) { #> data-user-setting="align" <# } #>> <option value="left"> Left </option> <option value="center"> Center </option> <option value="right"> Right </option> <option value="none" selected> None </option> </select> </span> <# } #> <span class="setting"> <label for="attachment-display-settings-link-to" class="name"> <# if ( data.model.canEmbed ) { #> Embed or Link <# } else { #> Link To <# } #> </label> <select id="attachment-display-settings-link-to" class="link-to" data-setting="link" <# if ( data.userSettings && ! data.model.canEmbed ) { #> data-user-setting="urlbutton" <# } #>> <# if ( data.model.canEmbed ) { #> <option value="embed" selected> Embed Media Player </option> <option value="file"> <# } else { #> <option value="none" selected> None </option> <option value="file"> <# } #> <# if ( data.model.canEmbed ) { #> Link to Media File <# } else { #> Media File <# } #> </option> <option value="post"> <# if ( data.model.canEmbed ) { #> Link to Attachment Page <# } else { #> Attachment Page <# } #> </option> <# if ( 'image' === data.type ) { #> <option value="custom"> Custom URL </option> <# } #> </select> </span> <span class="setting"> <label for="attachment-display-settings-link-to-custom" class="name">URL</label> <input type="text" id="attachment-display-settings-link-to-custom" class="link-to-custom" data-setting="linkUrl" /> </span> <# if ( 'undefined' !== typeof data.sizes ) { #> <span class="setting"> <label for="attachment-display-settings-size" class="name">Size</label> <select id="attachment-display-settings-size" class="size" name="size" data-setting="size" <# if ( data.userSettings ) { #> data-user-setting="imgsize" <# } #>> <# var size = data.sizes['thumbnail']; if ( size ) { #> <option value="thumbnail" > Thumbnail – {{ size.width }} × {{ size.height }} </option> <# } #> <# var size = data.sizes['medium']; if ( size ) { #> <option value="medium" > Medium – {{ size.width }} × {{ size.height }} </option> <# } #> <# var size = data.sizes['large']; if ( size ) { #> <option value="large" > Large – {{ size.width }} × {{ size.height }} </option> <# } #> <# var size = data.sizes['full']; if ( size ) { #> <option value="full" selected='selected'> Full Size – {{ size.width }} × {{ size.height }} </option> <# } #> </select> </span> <# } #> </script> <script type="text/html" id="tmpl-gallery-settings"> <h2>Gallery Settings</h2> <span class="setting"> <label for="gallery-settings-link-to" class="name">Link To</label> <select id="gallery-settings-link-to" class="link-to" data-setting="link" <# if ( data.userSettings ) { #> data-user-setting="urlbutton" <# } #>> <option value="post" <# if ( ! wp.media.galleryDefaults.link || 'post' === wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>> Attachment Page </option> <option value="file" <# if ( 'file' === wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>> Media File </option> <option value="none" <# if ( 'none' === wp.media.galleryDefaults.link ) { #>selected="selected"<# } #>> None </option> </select> </span> <span class="setting"> <label for="gallery-settings-columns" class="name select-label-inline">Columns</label> <select id="gallery-settings-columns" class="columns" name="columns" data-setting="columns"> <option value="1" <# if ( 1 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 1 </option> <option value="2" <# if ( 2 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 2 </option> <option value="3" <# if ( 3 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 3 </option> <option value="4" <# if ( 4 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 4 </option> <option value="5" <# if ( 5 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 5 </option> <option value="6" <# if ( 6 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 6 </option> <option value="7" <# if ( 7 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 7 </option> <option value="8" <# if ( 8 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 8 </option> <option value="9" <# if ( 9 == wp.media.galleryDefaults.columns ) { #>selected="selected"<# } #>> 9 </option> </select> </span> <span class="setting"> <input type="checkbox" id="gallery-settings-random-order" data-setting="_orderbyRandom" /> <label for="gallery-settings-random-order" class="checkbox-label-inline">Random Order</label> </span> <span class="setting size"> <label for="gallery-settings-size" class="name">Size</label> <select id="gallery-settings-size" class="size" name="size" data-setting="size" <# if ( data.userSettings ) { #> data-user-setting="imgsize" <# } #> > <option value="thumbnail"> Thumbnail </option> <option value="medium"> Medium </option> <option value="large"> Large </option> <option value="full"> Full Size </option> </select> </span> </script> <script type="text/html" id="tmpl-playlist-settings"> <h2>Playlist Settings</h2> <# var emptyModel = _.isEmpty( data.model ), isVideo = 'video' === data.controller.get('library').props.get('type'); #> <span class="setting"> <input type="checkbox" id="playlist-settings-show-list" data-setting="tracklist" <# if ( emptyModel ) { #> checked="checked" <# } #> /> <label for="playlist-settings-show-list" class="checkbox-label-inline"> <# if ( isVideo ) { #> Show Video List <# } else { #> Show Tracklist <# } #> </label> </span> <# if ( ! isVideo ) { #> <span class="setting"> <input type="checkbox" id="playlist-settings-show-artist" data-setting="artists" <# if ( emptyModel ) { #> checked="checked" <# } #> /> <label for="playlist-settings-show-artist" class="checkbox-label-inline"> Show Artist Name in Tracklist </label> </span> <# } #> <span class="setting"> <input type="checkbox" id="playlist-settings-show-images" data-setting="images" <# if ( emptyModel ) { #> checked="checked" <# } #> /> <label for="playlist-settings-show-images" class="checkbox-label-inline"> Show Images </label> </span> </script> <script type="text/html" id="tmpl-embed-link-settings"> <span class="setting link-text"> <label for="embed-link-settings-link-text" class="name">Link Text</label> <input type="text" id="embed-link-settings-link-text" class="alignment" data-setting="linkText" /> </span> <div class="embed-container" style="display: none;"> <div class="embed-preview"></div> </div> </script> <script type="text/html" id="tmpl-embed-image-settings"> <div class="wp-clearfix"> <div class="thumbnail"> <img src="{{ data.model.url }}" draggable="false" alt="" /> </div> </div> <span class="setting alt-text has-description"> <label for="embed-image-settings-alt-text" class="name">Alternative Text</label> <textarea id="embed-image-settings-alt-text" data-setting="alt" aria-describedby="alt-text-description"></textarea> </span> <p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span></a>. Leave empty if the image is purely decorative.</p> <span class="setting caption"> <label for="embed-image-settings-caption" class="name">Caption</label> <textarea id="embed-image-settings-caption" data-setting="caption"></textarea> </span> <fieldset class="setting-group"> <legend class="name">Align</legend> <span class="setting align"> <span class="button-group button-large" data-setting="align"> <button class="button" value="left"> Left </button> <button class="button" value="center"> Center </button> <button class="button" value="right"> Right </button> <button class="button active" value="none"> None </button> </span> </span> </fieldset> <fieldset class="setting-group"> <legend class="name">Link To</legend> <span class="setting link-to"> <span class="button-group button-large" data-setting="link"> <button class="button" value="file"> Image URL </button> <button class="button" value="custom"> Custom URL </button> <button class="button active" value="none"> None </button> </span> </span> <span class="setting"> <label for="embed-image-settings-link-to-custom" class="name">URL</label> <input type="text" id="embed-image-settings-link-to-custom" class="link-to-custom" data-setting="linkUrl" /> </span> </fieldset> </script> <script type="text/html" id="tmpl-image-details"> <div class="media-embed"> <div class="embed-media-settings"> <div class="column-settings"> <span class="setting alt-text has-description"> <label for="image-details-alt-text" class="name">Alternative Text</label> <textarea id="image-details-alt-text" data-setting="alt" aria-describedby="alt-text-description">{{ data.model.alt }}</textarea> </span> <p class="description" id="alt-text-description"><a href="https://www.w3.org/WAI/tutorials/images/decision-tree/" target="_blank">Learn how to describe the purpose of the image<span class="screen-reader-text"> (opens in a new tab)</span></a>. Leave empty if the image is purely decorative.</p> <span class="setting caption"> <label for="image-details-caption" class="name">Caption</label> <textarea id="image-details-caption" data-setting="caption">{{ data.model.caption }}</textarea> </span> <h2>Display Settings</h2> <fieldset class="setting-group"> <legend class="legend-inline">Align</legend> <span class="setting align"> <span class="button-group button-large" data-setting="align"> <button class="button" value="left"> Left </button> <button class="button" value="center"> Center </button> <button class="button" value="right"> Right </button> <button class="button active" value="none"> None </button> </span> </span> </fieldset> <# if ( data.attachment ) { #> <# if ( 'undefined' !== typeof data.attachment.sizes ) { #> <span class="setting size"> <label for="image-details-size" class="name">Size</label> <select id="image-details-size" class="size" name="size" data-setting="size" <# if ( data.userSettings ) { #> data-user-setting="imgsize" <# } #>> <# var size = data.sizes['thumbnail']; if ( size ) { #> <option value="thumbnail"> Thumbnail – {{ size.width }} × {{ size.height }} </option> <# } #> <# var size = data.sizes['medium']; if ( size ) { #> <option value="medium"> Medium – {{ size.width }} × {{ size.height }} </option> <# } #> <# var size = data.sizes['large']; if ( size ) { #> <option value="large"> Large – {{ size.width }} × {{ size.height }} </option> <# } #> <# var size = data.sizes['full']; if ( size ) { #> <option value="full"> Full Size – {{ size.width }} × {{ size.height }} </option> <# } #> <option value="custom"> Custom Size </option> </select> </span> <# } #> <div class="custom-size wp-clearfix<# if ( data.model.size !== 'custom' ) { #> hidden<# } #>"> <span class="custom-size-setting"> <label for="image-details-size-width">Width</label> <input type="number" id="image-details-size-width" aria-describedby="image-size-desc" data-setting="customWidth" step="1" value="{{ data.model.customWidth }}" /> </span> <span class="sep" aria-hidden="true">×</span> <span class="custom-size-setting"> <label for="image-details-size-height">Height</label> <input type="number" id="image-details-size-height" aria-describedby="image-size-desc" data-setting="customHeight" step="1" value="{{ data.model.customHeight }}" /> </span> <p id="image-size-desc" class="description">Image size in pixels</p> </div> <# } #> <span class="setting link-to"> <label for="image-details-link-to" class="name">Link To</label> <select id="image-details-link-to" data-setting="link"> <# if ( data.attachment ) { #> <option value="file"> Media File </option> <option value="post"> Attachment Page </option> <# } else { #> <option value="file"> Image URL </option> <# } #> <option value="custom"> Custom URL </option> <option value="none"> None </option> </select> </span> <span class="setting"> <label for="image-details-link-to-custom" class="name">URL</label> <input type="text" id="image-details-link-to-custom" class="link-to-custom" data-setting="linkUrl" /> </span> <div class="advanced-section"> <h2><button type="button" class="button-link advanced-toggle">Advanced Options</button></h2> <div class="advanced-settings hidden"> <div class="advanced-image"> <span class="setting title-text"> <label for="image-details-title-attribute" class="name">Image Title Attribute</label> <input type="text" id="image-details-title-attribute" data-setting="title" value="{{ data.model.title }}" /> </span> <span class="setting extra-classes"> <label for="image-details-css-class" class="name">Image CSS Class</label> <input type="text" id="image-details-css-class" data-setting="extraClasses" value="{{ data.model.extraClasses }}" /> </span> </div> <div class="advanced-link"> <span class="setting link-target"> <input type="checkbox" id="image-details-link-target" data-setting="linkTargetBlank" value="_blank" <# if ( data.model.linkTargetBlank ) { #>checked="checked"<# } #>> <label for="image-details-link-target" class="checkbox-label">Open link in a new tab</label> </span> <span class="setting link-rel"> <label for="image-details-link-rel" class="name">Link Rel</label> <input type="text" id="image-details-link-rel" data-setting="linkRel" value="{{ data.model.linkRel }}" /> </span> <span class="setting link-class-name"> <label for="image-details-link-css-class" class="name">Link CSS Class</label> <input type="text" id="image-details-link-css-class" data-setting="linkClassName" value="{{ data.model.linkClassName }}" /> </span> </div> </div> </div> </div> <div class="column-image"> <div class="image"> <img src="{{ data.model.url }}" draggable="false" alt="" /> <# if ( data.attachment && window.imageEdit ) { #> <div class="actions"> <input type="button" class="edit-attachment button" value="Edit Original" /> <input type="button" class="replace-attachment button" value="Replace" /> </div> <# } #> </div> </div> </div> </div> </script> <script type="text/html" id="tmpl-image-editor"> <div id="media-head-{{ data.id }}"></div> <div id="image-editor-{{ data.id }}"></div> </script> <script type="text/html" id="tmpl-audio-details"> <# var ext, html5types = { mp3: wp.media.view.settings.embedMimes.mp3, ogg: wp.media.view.settings.embedMimes.ogg }; #> <div class="media-embed media-embed-details"> <div class="embed-media-settings embed-audio-settings"> <audio style="visibility: hidden" controls class="wp-audio-shortcode" width="{{ _.isUndefined( data.model.width ) ? 400 : data.model.width }}" preload="{{ _.isUndefined( data.model.preload ) ? 'none' : data.model.preload }}" <# if ( ! _.isUndefined( data.model.autoplay ) && data.model.autoplay ) { #> autoplay<# } if ( ! _.isUndefined( data.model.loop ) && data.model.loop ) { #> loop<# } #> > <# if ( ! _.isEmpty( data.model.src ) ) { #> <source src="{{ data.model.src }}" type="{{ wp.media.view.settings.embedMimes[ data.model.src.split('.').pop() ] }}" /> <# } #> <# if ( ! _.isEmpty( data.model.mp3 ) ) { #> <source src="{{ data.model.mp3 }}" type="{{ wp.media.view.settings.embedMimes[ 'mp3' ] }}" /> <# } #> <# if ( ! _.isEmpty( data.model.ogg ) ) { #> <source src="{{ data.model.ogg }}" type="{{ wp.media.view.settings.embedMimes[ 'ogg' ] }}" /> <# } #> <# if ( ! _.isEmpty( data.model.flac ) ) { #> <source src="{{ data.model.flac }}" type="{{ wp.media.view.settings.embedMimes[ 'flac' ] }}" /> <# } #> <# if ( ! _.isEmpty( data.model.m4a ) ) { #> <source src="{{ data.model.m4a }}" type="{{ wp.media.view.settings.embedMimes[ 'm4a' ] }}" /> <# } #> <# if ( ! _.isEmpty( data.model.wav ) ) { #> <source src="{{ data.model.wav }}" type="{{ wp.media.view.settings.embedMimes[ 'wav' ] }}" /> <# } #> </audio> <# if ( ! _.isEmpty( data.model.src ) ) { ext = data.model.src.split('.').pop(); if ( html5types[ ext ] ) { delete html5types[ ext ]; } #> <span class="setting"> <label for="audio-details-source" class="name">URL</label> <input type="text" id="audio-details-source" readonly data-setting="src" value="{{ data.model.src }}" /> <button type="button" class="button-link remove-setting">Remove audio source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.mp3 ) ) { if ( ! _.isUndefined( html5types.mp3 ) ) { delete html5types.mp3; } #> <span class="setting"> <label for="audio-details-mp3-source" class="name">MP3</label> <input type="text" id="audio-details-mp3-source" readonly data-setting="mp3" value="{{ data.model.mp3 }}" /> <button type="button" class="button-link remove-setting">Remove audio source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.ogg ) ) { if ( ! _.isUndefined( html5types.ogg ) ) { delete html5types.ogg; } #> <span class="setting"> <label for="audio-details-ogg-source" class="name">OGG</label> <input type="text" id="audio-details-ogg-source" readonly data-setting="ogg" value="{{ data.model.ogg }}" /> <button type="button" class="button-link remove-setting">Remove audio source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.flac ) ) { if ( ! _.isUndefined( html5types.flac ) ) { delete html5types.flac; } #> <span class="setting"> <label for="audio-details-flac-source" class="name">FLAC</label> <input type="text" id="audio-details-flac-source" readonly data-setting="flac" value="{{ data.model.flac }}" /> <button type="button" class="button-link remove-setting">Remove audio source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.m4a ) ) { if ( ! _.isUndefined( html5types.m4a ) ) { delete html5types.m4a; } #> <span class="setting"> <label for="audio-details-m4a-source" class="name">M4A</label> <input type="text" id="audio-details-m4a-source" readonly data-setting="m4a" value="{{ data.model.m4a }}" /> <button type="button" class="button-link remove-setting">Remove audio source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.wav ) ) { if ( ! _.isUndefined( html5types.wav ) ) { delete html5types.wav; } #> <span class="setting"> <label for="audio-details-wav-source" class="name">WAV</label> <input type="text" id="audio-details-wav-source" readonly data-setting="wav" value="{{ data.model.wav }}" /> <button type="button" class="button-link remove-setting">Remove audio source</button> </span> <# } #> <# if ( ! _.isEmpty( html5types ) ) { #> <fieldset class="setting-group"> <legend class="name">Add alternate sources for maximum HTML5 playback</legend> <span class="setting"> <span class="button-large"> <# _.each( html5types, function (mime, type) { #> <button class="button add-media-source" data-mime="{{ mime }}">{{ type }}</button> <# } ) #> </span> </span> </fieldset> <# } #> <fieldset class="setting-group"> <legend class="name">Preload</legend> <span class="setting preload"> <span class="button-group button-large" data-setting="preload"> <button class="button" value="auto">Auto</button> <button class="button" value="metadata">Metadata</button> <button class="button active" value="none">None</button> </span> </span> </fieldset> <span class="setting-group"> <span class="setting checkbox-setting autoplay"> <input type="checkbox" id="audio-details-autoplay" data-setting="autoplay" /> <label for="audio-details-autoplay" class="checkbox-label">Autoplay</label> </span> <span class="setting checkbox-setting"> <input type="checkbox" id="audio-details-loop" data-setting="loop" /> <label for="audio-details-loop" class="checkbox-label">Loop</label> </span> </span> </div> </div> </script> <script type="text/html" id="tmpl-video-details"> <# var ext, html5types = { mp4: wp.media.view.settings.embedMimes.mp4, ogv: wp.media.view.settings.embedMimes.ogv, webm: wp.media.view.settings.embedMimes.webm }; #> <div class="media-embed media-embed-details"> <div class="embed-media-settings embed-video-settings"> <div class="wp-video-holder"> <# var w = ! data.model.width || data.model.width > 640 ? 640 : data.model.width, h = ! data.model.height ? 360 : data.model.height; if ( data.model.width && w !== data.model.width ) { h = Math.ceil( ( h * w ) / data.model.width ); } #> <# var w_rule = '', classes = [], w, h, settings = wp.media.view.settings, isYouTube = isVimeo = false; if ( ! _.isEmpty( data.model.src ) ) { isYouTube = data.model.src.match(/youtube|youtu\.be/); isVimeo = -1 !== data.model.src.indexOf('vimeo'); } if ( settings.contentWidth && data.model.width >= settings.contentWidth ) { w = settings.contentWidth; } else { w = data.model.width; } if ( w !== data.model.width ) { h = Math.ceil( ( data.model.height * w ) / data.model.width ); } else { h = data.model.height; } if ( w ) { w_rule = 'width: ' + w + 'px; '; } if ( isYouTube ) { classes.push( 'youtube-video' ); } if ( isVimeo ) { classes.push( 'vimeo-video' ); } #> <div style="{{ w_rule }}" class="wp-video"> <video controls class="wp-video-shortcode {{ classes.join( ' ' ) }}" <# if ( w ) { #>width="{{ w }}"<# } #> <# if ( h ) { #>height="{{ h }}"<# } #> <# if ( ! _.isUndefined( data.model.poster ) && data.model.poster ) { #> poster="{{ data.model.poster }}"<# } #> preload ="{{ _.isUndefined( data.model.preload ) ? 'metadata' : data.model.preload }}" <# if ( ! _.isUndefined( data.model.autoplay ) && data.model.autoplay ) { #> autoplay<# } if ( ! _.isUndefined( data.model.loop ) && data.model.loop ) { #> loop<# } #> > <# if ( ! _.isEmpty( data.model.src ) ) { if ( isYouTube ) { #> <source src="{{ data.model.src }}" type="video/youtube" /> <# } else if ( isVimeo ) { #> <source src="{{ data.model.src }}" type="video/vimeo" /> <# } else { #> <source src="{{ data.model.src }}" type="{{ settings.embedMimes[ data.model.src.split('.').pop() ] }}" /> <# } } #> <# if ( data.model.mp4 ) { #> <source src="{{ data.model.mp4 }}" type="{{ settings.embedMimes[ 'mp4' ] }}" /> <# } #> <# if ( data.model.m4v ) { #> <source src="{{ data.model.m4v }}" type="{{ settings.embedMimes[ 'm4v' ] }}" /> <# } #> <# if ( data.model.webm ) { #> <source src="{{ data.model.webm }}" type="{{ settings.embedMimes[ 'webm' ] }}" /> <# } #> <# if ( data.model.ogv ) { #> <source src="{{ data.model.ogv }}" type="{{ settings.embedMimes[ 'ogv' ] }}" /> <# } #> <# if ( data.model.flv ) { #> <source src="{{ data.model.flv }}" type="{{ settings.embedMimes[ 'flv' ] }}" /> <# } #> {{{ data.model.content }}} </video> </div> <# if ( ! _.isEmpty( data.model.src ) ) { ext = data.model.src.split('.').pop(); if ( html5types[ ext ] ) { delete html5types[ ext ]; } #> <span class="setting"> <label for="video-details-source" class="name">URL</label> <input type="text" id="video-details-source" readonly data-setting="src" value="{{ data.model.src }}" /> <button type="button" class="button-link remove-setting">Remove video source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.mp4 ) ) { if ( ! _.isUndefined( html5types.mp4 ) ) { delete html5types.mp4; } #> <span class="setting"> <label for="video-details-mp4-source" class="name">MP4</label> <input type="text" id="video-details-mp4-source" readonly data-setting="mp4" value="{{ data.model.mp4 }}" /> <button type="button" class="button-link remove-setting">Remove video source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.m4v ) ) { if ( ! _.isUndefined( html5types.m4v ) ) { delete html5types.m4v; } #> <span class="setting"> <label for="video-details-m4v-source" class="name">M4V</label> <input type="text" id="video-details-m4v-source" readonly data-setting="m4v" value="{{ data.model.m4v }}" /> <button type="button" class="button-link remove-setting">Remove video source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.webm ) ) { if ( ! _.isUndefined( html5types.webm ) ) { delete html5types.webm; } #> <span class="setting"> <label for="video-details-webm-source" class="name">WEBM</label> <input type="text" id="video-details-webm-source" readonly data-setting="webm" value="{{ data.model.webm }}" /> <button type="button" class="button-link remove-setting">Remove video source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.ogv ) ) { if ( ! _.isUndefined( html5types.ogv ) ) { delete html5types.ogv; } #> <span class="setting"> <label for="video-details-ogv-source" class="name">OGV</label> <input type="text" id="video-details-ogv-source" readonly data-setting="ogv" value="{{ data.model.ogv }}" /> <button type="button" class="button-link remove-setting">Remove video source</button> </span> <# } #> <# if ( ! _.isEmpty( data.model.flv ) ) { if ( ! _.isUndefined( html5types.flv ) ) { delete html5types.flv; } #> <span class="setting"> <label for="video-details-flv-source" class="name">FLV</label> <input type="text" id="video-details-flv-source" readonly data-setting="flv" value="{{ data.model.flv }}" /> <button type="button" class="button-link remove-setting">Remove video source</button> </span> <# } #> </div> <# if ( ! _.isEmpty( html5types ) ) { #> <fieldset class="setting-group"> <legend class="name">Add alternate sources for maximum HTML5 playback</legend> <span class="setting"> <span class="button-large"> <# _.each( html5types, function (mime, type) { #> <button class="button add-media-source" data-mime="{{ mime }}">{{ type }}</button> <# } ) #> </span> </span> </fieldset> <# } #> <# if ( ! _.isEmpty( data.model.poster ) ) { #> <span class="setting"> <label for="video-details-poster-image" class="name">Poster Image</label> <input type="text" id="video-details-poster-image" readonly data-setting="poster" value="{{ data.model.poster }}" /> <button type="button" class="button-link remove-setting">Remove poster image</button> </span> <# } #> <fieldset class="setting-group"> <legend class="name">Preload</legend> <span class="setting preload"> <span class="button-group button-large" data-setting="preload"> <button class="button" value="auto">Auto</button> <button class="button" value="metadata">Metadata</button> <button class="button active" value="none">None</button> </span> </span> </fieldset> <span class="setting-group"> <span class="setting checkbox-setting autoplay"> <input type="checkbox" id="video-details-autoplay" data-setting="autoplay" /> <label for="video-details-autoplay" class="checkbox-label">Autoplay</label> </span> <span class="setting checkbox-setting"> <input type="checkbox" id="video-details-loop" data-setting="loop" /> <label for="video-details-loop" class="checkbox-label">Loop</label> </span> </span> <span class="setting" data-setting="content"> <# var content = ''; if ( ! _.isEmpty( data.model.content ) ) { var tracks = jQuery( data.model.content ).filter( 'track' ); _.each( tracks.toArray(), function( track, index ) { content += track.outerHTML; #> <label for="video-details-track-{{ index }}" class="name">Tracks (subtitles, captions, descriptions, chapters, or metadata)</label> <input class="content-track" type="text" id="video-details-track-{{ index }}" aria-describedby="video-details-track-desc-{{ index }}" value="{{ track.outerHTML }}" /> <span class="description" id="video-details-track-desc-{{ index }}"> The srclang, label, and kind values can be edited to set the video track language and kind. </span> <button type="button" class="button-link remove-setting remove-track">Remove video track</button><br /> <# } ); #> <# } else { #> <span class="name">Tracks (subtitles, captions, descriptions, chapters, or metadata)</span><br /> <em>There are no associated subtitles.</em> <# } #> <textarea class="hidden content-setting">{{ content }}</textarea> </span> </div> </div> </script> <script type="text/html" id="tmpl-editor-gallery"> <# if ( data.attachments.length ) { #> <div class="gallery gallery-columns-{{ data.columns }}"> <# _.each( data.attachments, function( attachment, index ) { #> <dl class="gallery-item"> <dt class="gallery-icon"> <# if ( attachment.thumbnail ) { #> <img src="{{ attachment.thumbnail.url }}" width="{{ attachment.thumbnail.width }}" height="{{ attachment.thumbnail.height }}" alt="{{ attachment.alt }}" /> <# } else { #> <img src="{{ attachment.url }}" alt="{{ attachment.alt }}" /> <# } #> </dt> <# if ( attachment.caption ) { #> <dd class="wp-caption-text gallery-caption"> {{{ data.verifyHTML( attachment.caption ) }}} </dd> <# } #> </dl> <# if ( index % data.columns === data.columns - 1 ) { #> <br style="clear: both;" /> <# } #> <# } ); #> </div> <# } else { #> <div class="wpview-error"> <div class="dashicons dashicons-format-gallery"></div><p>No items found.</p> </div> <# } #> </script> <script type="text/html" id="tmpl-crop-content"> <img class="crop-image" src="{{ data.url }}" alt="Image crop area preview. Requires mouse interaction." /> <div class="upload-errors"></div> </script> <script type="text/html" id="tmpl-site-icon-preview-crop"> <style> :root{ --site-icon-url: url( "{{ data.url }}" ); } </style> <h2>Site Icon Preview</h2> <p>As an app icon and a browser icon.</p> <div class="site-icon-preview crop"> <div class="image-preview-wrap app-icon-preview"> <img id="preview-app-icon" src="{{ data.url }}" class="app-icon-preview" alt="Preview as an app icon" /> </div> <div class="site-icon-preview-browser"> <svg role="img" aria-hidden="true" fill="none" xmlns="http://www.w3.org/2000/svg" class="browser-buttons"><path fill-rule="evenodd" clip-rule="evenodd" d="M0 20a6 6 0 1 1 12 0 6 6 0 0 1-12 0Zm18 0a6 6 0 1 1 12 0 6 6 0 0 1-12 0Zm24-6a6 6 0 1 0 0 12 6 6 0 0 0 0-12Z" /></svg> <div class="site-icon-preview-tab"> <div class="image-preview-wrap browser"> <img id="preview-favicon" src="{{ data.url }}" class="browser-icon-preview" alt="Preview as a browser icon" /> </div> <div class="site-icon-preview-site-title" aria-hidden="true"><# print( 'Peter Detkin Lab' ) #></div> <svg role="img" aria-hidden="true" fill="none" xmlns="http://www.w3.org/2000/svg" class="close-button"> <path d="M12 13.0607L15.7123 16.773L16.773 15.7123L13.0607 12L16.773 8.28772L15.7123 7.22706L12 10.9394L8.28771 7.22705L7.22705 8.28771L10.9394 12L7.22706 15.7123L8.28772 16.773L12 13.0607Z" /> </svg> </div> </div> </div> </div> </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/underscore.min.js?ver=1.13.7" id="underscore-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/shortcode.min.js?ver=6.7.2" id="shortcode-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/backbone.min.js?ver=1.6.0" id="backbone-js"></script> <script type="text/javascript" id="wp-util-js-extra"> /* <![CDATA[ */ var _wpUtilSettings = {"ajax":{"url":"\/wp-admin\/admin-ajax.php"}}; /* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/wp-util.min.js?ver=6.7.2" id="wp-util-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/wp-backbone.min.js?ver=6.7.2" id="wp-backbone-js"></script> <script type="text/javascript" id="media-models-js-extra"> /* <![CDATA[ */ var _wpMediaModelsL10n = {"settings":{"ajaxurl":"\/wp-admin\/admin-ajax.php","post":{"id":0}}}; /* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/media-models.min.js?ver=6.7.2" id="media-models-js"></script> <script type="text/javascript" id="wp-plupload-js-extra"> /* <![CDATA[ */ var pluploadL10n = {"queue_limit_exceeded":"You have attempted to queue too many files.","file_exceeds_size_limit":"%s exceeds the maximum upload size for this site.","zero_byte_file":"This file is empty. Please try another.","invalid_filetype":"Sorry, you are not allowed to upload this file type.","not_an_image":"This file is not an image. Please try another.","image_memory_exceeded":"Memory exceeded. Please try another smaller file.","image_dimensions_exceeded":"This is larger than the maximum size. Please try another.","default_error":"An error occurred in the upload. Please try again later.","missing_upload_url":"There was a configuration error. Please contact the server administrator.","upload_limit_exceeded":"You may only upload 1 file.","http_error":"Unexpected response from the server. The file may have been uploaded successfully. Check in the Media Library or reload the page.","http_error_image":"The server cannot process the image. This can happen if the server is busy or does not have enough resources to complete the task. Uploading a smaller image may help. Suggested maximum size is 2560 pixels.","upload_failed":"Upload failed.","big_upload_failed":"Please try uploading this file with the %1$sbrowser uploader%2$s.","big_upload_queued":"%s exceeds the maximum upload size for the multi-file uploader when used in your browser.","io_error":"IO error.","security_error":"Security error.","file_cancelled":"File canceled.","upload_stopped":"Upload stopped.","dismiss":"Dismiss","crunching":"Crunching\u2026","deleted":"moved to the Trash.","error_uploading":"\u201c%s\u201d has failed to upload.","unsupported_image":"This image cannot be displayed in a web browser. For best results convert it to JPEG before uploading.","noneditable_image":"This image cannot be processed by the web server. Convert it to JPEG or PNG before uploading.","file_url_copied":"The file URL has been copied to your clipboard"}; var _wpPluploadSettings = {"defaults":{"file_data_name":"async-upload","url":"\/wp-admin\/async-upload.php","filters":{"max_file_size":"104857600b","mime_types":[{"extensions":"jpg,jpeg,jpe,gif,png,bmp,tiff,tif,webp,avif,ico,heic,heif,heics,heifs,asf,asx,wmv,wmx,wm,avi,divx,flv,mov,qt,mpeg,mpg,mpe,mp4,m4v,ogv,webm,mkv,3gp,3gpp,3g2,3gp2,txt,asc,c,cc,h,srt,csv,tsv,ics,rtx,css,vtt,dfxp,mp3,m4a,m4b,aac,ra,ram,wav,ogg,oga,flac,mid,midi,wma,wax,mka,rtf,pdf,class,tar,zip,gz,gzip,rar,7z,psd,xcf,doc,pot,pps,ppt,wri,xla,xls,xlt,xlw,mdb,mpp,docx,docm,dotx,dotm,xlsx,xlsm,xlsb,xltx,xltm,xlam,pptx,pptm,ppsx,ppsm,potx,potm,ppam,sldx,sldm,onetoc,onetoc2,onetmp,onepkg,oxps,xps,odt,odp,ods,odg,odc,odb,odf,wp,wpd,key,numbers,pages"}]},"multipart_params":{"action":"upload-attachment","_wpnonce":"7972dbaca8"}},"browser":{"mobile":false,"supported":true},"limitExceeded":false}; /* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/plupload/wp-plupload.min.js?ver=6.7.2" id="wp-plupload-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/jquery/ui/core.min.js?ver=1.13.3" id="jquery-ui-core-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/jquery/ui/mouse.min.js?ver=1.13.3" id="jquery-ui-mouse-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/jquery/ui/sortable.min.js?ver=1.13.3" id="jquery-ui-sortable-js"></script> <script type="text/javascript" id="mediaelement-core-js-before"> /* <![CDATA[ */ var mejsL10n = {"language":"en","strings":{"mejs.download-file":"Download File","mejs.install-flash":"You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https:\/\/get.adobe.com\/flashplayer\/","mejs.fullscreen":"Fullscreen","mejs.play":"Play","mejs.pause":"Pause","mejs.time-slider":"Time Slider","mejs.time-help-text":"Use Left\/Right Arrow keys to advance one second, Up\/Down arrows to advance ten seconds.","mejs.live-broadcast":"Live Broadcast","mejs.volume-help-text":"Use Up\/Down Arrow keys to increase or decrease volume.","mejs.unmute":"Unmute","mejs.mute":"Mute","mejs.volume-slider":"Volume Slider","mejs.video-player":"Video Player","mejs.audio-player":"Audio Player","mejs.captions-subtitles":"Captions\/Subtitles","mejs.captions-chapters":"Chapters","mejs.none":"None","mejs.afrikaans":"Afrikaans","mejs.albanian":"Albanian","mejs.arabic":"Arabic","mejs.belarusian":"Belarusian","mejs.bulgarian":"Bulgarian","mejs.catalan":"Catalan","mejs.chinese":"Chinese","mejs.chinese-simplified":"Chinese (Simplified)","mejs.chinese-traditional":"Chinese (Traditional)","mejs.croatian":"Croatian","mejs.czech":"Czech","mejs.danish":"Danish","mejs.dutch":"Dutch","mejs.english":"English","mejs.estonian":"Estonian","mejs.filipino":"Filipino","mejs.finnish":"Finnish","mejs.french":"French","mejs.galician":"Galician","mejs.german":"German","mejs.greek":"Greek","mejs.haitian-creole":"Haitian Creole","mejs.hebrew":"Hebrew","mejs.hindi":"Hindi","mejs.hungarian":"Hungarian","mejs.icelandic":"Icelandic","mejs.indonesian":"Indonesian","mejs.irish":"Irish","mejs.italian":"Italian","mejs.japanese":"Japanese","mejs.korean":"Korean","mejs.latvian":"Latvian","mejs.lithuanian":"Lithuanian","mejs.macedonian":"Macedonian","mejs.malay":"Malay","mejs.maltese":"Maltese","mejs.norwegian":"Norwegian","mejs.persian":"Persian","mejs.polish":"Polish","mejs.portuguese":"Portuguese","mejs.romanian":"Romanian","mejs.russian":"Russian","mejs.serbian":"Serbian","mejs.slovak":"Slovak","mejs.slovenian":"Slovenian","mejs.spanish":"Spanish","mejs.swahili":"Swahili","mejs.swedish":"Swedish","mejs.tagalog":"Tagalog","mejs.thai":"Thai","mejs.turkish":"Turkish","mejs.ukrainian":"Ukrainian","mejs.vietnamese":"Vietnamese","mejs.welsh":"Welsh","mejs.yiddish":"Yiddish"}}; /* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/mediaelement/mediaelement-and-player.min.js?ver=4.2.17" id="mediaelement-core-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/mediaelement/mediaelement-migrate.min.js?ver=6.7.2" id="mediaelement-migrate-js"></script> <script type="text/javascript" id="mediaelement-js-extra"> /* <![CDATA[ */ var _wpmejsSettings = {"pluginPath":"\/wp-includes\/js\/mediaelement\/","classPrefix":"mejs-","stretching":"responsive","audioShortcodeLibrary":"mediaelement","videoShortcodeLibrary":"mediaelement"}; /* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/mediaelement/wp-mediaelement.min.js?ver=6.7.2" id="wp-mediaelement-js"></script> <script type="text/javascript" id="wp-api-request-js-extra"> /* <![CDATA[ */ var wpApiSettings = {"root":"https:\/\/detkin.ese.upenn.edu\/wp-json\/","nonce":"6536b80ef2","versionString":"wp\/v2\/"}; /* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/api-request.min.js?ver=6.7.2" id="wp-api-request-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/dist/dom-ready.min.js?ver=f77871ff7694fffea381" id="wp-dom-ready-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/dist/hooks.min.js?ver=4d63a3d491d11ffd8ac6" id="wp-hooks-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/dist/i18n.min.js?ver=5e580eb46a90c2b997e6" id="wp-i18n-js"></script> <script type="text/javascript" id="wp-i18n-js-after"> /* <![CDATA[ */ wp.i18n.setLocaleData( { 'text direction\u0004ltr': [ 'ltr' ] } ); /* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/dist/a11y.min.js?ver=3156534cc54473497e14" id="wp-a11y-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/clipboard.min.js?ver=2.0.11" id="clipboard-js"></script> <script type="text/javascript" id="media-views-js-extra"> /* <![CDATA[ */ var _wpMediaViewsL10n = {"mediaFrameDefaultTitle":"Media","url":"URL","addMedia":"Add media","search":"Search","select":"Select","cancel":"Cancel","update":"Update","replace":"Replace","remove":"Remove","back":"Back","selected":"%d selected","dragInfo":"Drag and drop to reorder media files.","uploadFilesTitle":"Upload files","uploadImagesTitle":"Upload images","mediaLibraryTitle":"Media Library","insertMediaTitle":"Add media","createNewGallery":"Create a new gallery","createNewPlaylist":"Create a new playlist","createNewVideoPlaylist":"Create a new video playlist","returnToLibrary":"\u2190 Go to library","allMediaItems":"All media items","allDates":"All dates","noItemsFound":"No items found.","insertIntoPost":"Insert into post","unattached":"Unattached","mine":"Mine","trash":"Trash","uploadedToThisPost":"Uploaded to this post","warnDelete":"You are about to permanently delete this item from your site.\nThis action cannot be undone.\n 'Cancel' to stop, 'OK' to delete.","warnBulkDelete":"You are about to permanently delete these items from your site.\nThis action cannot be undone.\n 'Cancel' to stop, 'OK' to delete.","warnBulkTrash":"You are about to trash these items.\n 'Cancel' to stop, 'OK' to delete.","bulkSelect":"Bulk select","trashSelected":"Move to Trash","restoreSelected":"Restore from Trash","deletePermanently":"Delete permanently","errorDeleting":"Error in deleting the attachment.","apply":"Apply","filterByDate":"Filter by date","filterByType":"Filter by type","searchLabel":"Search media","searchMediaLabel":"Search media","searchMediaPlaceholder":"Search media items...","mediaFound":"Number of media items found: %d","noMedia":"No media items found.","noMediaTryNewSearch":"No media items found. Try a different search.","attachmentDetails":"Attachment details","insertFromUrlTitle":"Insert from URL","setFeaturedImageTitle":"Featured image","setFeaturedImage":"Set featured image","createGalleryTitle":"Create gallery","editGalleryTitle":"Edit gallery","cancelGalleryTitle":"\u2190 Cancel gallery","insertGallery":"Insert gallery","updateGallery":"Update gallery","addToGallery":"Add to gallery","addToGalleryTitle":"Add to gallery","reverseOrder":"Reverse order","imageDetailsTitle":"Image details","imageReplaceTitle":"Replace image","imageDetailsCancel":"Cancel edit","editImage":"Edit image","chooseImage":"Choose image","selectAndCrop":"Select and crop","skipCropping":"Skip cropping","cropImage":"Crop image","cropYourImage":"Crop your image","cropping":"Cropping\u2026","suggestedDimensions":"Suggested image dimensions: %1$s by %2$s pixels.","cropError":"There has been an error cropping your image.","audioDetailsTitle":"Audio details","audioReplaceTitle":"Replace audio","audioAddSourceTitle":"Add audio source","audioDetailsCancel":"Cancel edit","videoDetailsTitle":"Video details","videoReplaceTitle":"Replace video","videoAddSourceTitle":"Add video source","videoDetailsCancel":"Cancel edit","videoSelectPosterImageTitle":"Select poster image","videoAddTrackTitle":"Add subtitles","playlistDragInfo":"Drag and drop to reorder tracks.","createPlaylistTitle":"Create audio playlist","editPlaylistTitle":"Edit audio playlist","cancelPlaylistTitle":"\u2190 Cancel audio playlist","insertPlaylist":"Insert audio playlist","updatePlaylist":"Update audio playlist","addToPlaylist":"Add to audio playlist","addToPlaylistTitle":"Add to Audio Playlist","videoPlaylistDragInfo":"Drag and drop to reorder videos.","createVideoPlaylistTitle":"Create video playlist","editVideoPlaylistTitle":"Edit video playlist","cancelVideoPlaylistTitle":"\u2190 Cancel video playlist","insertVideoPlaylist":"Insert video playlist","updateVideoPlaylist":"Update video playlist","addToVideoPlaylist":"Add to video playlist","addToVideoPlaylistTitle":"Add to video Playlist","filterAttachments":"Filter media","attachmentsList":"Media list","settings":{"tabs":[],"tabUrl":"https:\/\/detkin.ese.upenn.edu\/wp-admin\/media-upload.php?chromeless=1","mimeTypes":{"image":"Images","audio":"Audio","video":"Video","application\/msword,application\/vnd.openxmlformats-officedocument.wordprocessingml.document,application\/vnd.ms-word.document.macroEnabled.12,application\/vnd.ms-word.template.macroEnabled.12,application\/vnd.oasis.opendocument.text,application\/vnd.apple.pages,application\/pdf,application\/vnd.ms-xpsdocument,application\/oxps,application\/rtf,application\/wordperfect,application\/octet-stream":"Documents","application\/vnd.apple.numbers,application\/vnd.oasis.opendocument.spreadsheet,application\/vnd.ms-excel,application\/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application\/vnd.ms-excel.sheet.macroEnabled.12,application\/vnd.ms-excel.sheet.binary.macroEnabled.12":"Spreadsheets","application\/x-gzip,application\/rar,application\/x-tar,application\/zip,application\/x-7z-compressed":"Archives"},"captions":true,"nonce":{"sendToEditor":"1fdb4c1990","setAttachmentThumbnail":"dfad32d532"},"post":{"id":0},"defaultProps":{"link":"none","align":"","size":""},"attachmentCounts":{"audio":1,"video":1},"oEmbedProxyUrl":"https:\/\/detkin.ese.upenn.edu\/wp-json\/oembed\/1.0\/proxy","embedExts":["mp3","ogg","flac","m4a","wav","mp4","m4v","webm","ogv","flv"],"embedMimes":{"mp3":"audio\/mpeg","ogg":"audio\/ogg","flac":"audio\/flac","m4a":"audio\/mpeg","wav":"audio\/wav","mp4":"video\/mp4","m4v":"video\/mp4","webm":"video\/webm","ogv":"video\/ogg","flv":"video\/x-flv"},"contentWidth":null,"months":[{"year":"2024","month":"8","text":"August 2024"},{"year":"2024","month":"3","text":"March 2024"},{"year":"2024","month":"2","text":"February 2024"},{"year":"2023","month":"10","text":"October 2023"},{"year":"2023","month":"9","text":"September 2023"},{"year":"2022","month":"12","text":"December 2022"},{"year":"2022","month":"3","text":"March 2022"},{"year":"2022","month":"2","text":"February 2022"},{"year":"2021","month":"10","text":"October 2021"},{"year":"2021","month":"8","text":"August 2021"},{"year":"2021","month":"6","text":"June 2021"},{"year":"2021","month":"3","text":"March 2021"},{"year":"2020","month":"12","text":"December 2020"},{"year":"2020","month":"11","text":"November 2020"},{"year":"2020","month":"9","text":"September 2020"},{"year":"2020","month":"8","text":"August 2020"},{"year":"2020","month":"7","text":"July 2020"},{"year":"2020","month":"5","text":"May 2020"},{"year":"2020","month":"4","text":"April 2020"},{"year":"2020","month":"3","text":"March 2020"},{"year":"2019","month":"12","text":"December 2019"},{"year":"2019","month":"10","text":"October 2019"},{"year":"2018","month":"9","text":"September 2018"},{"year":"2018","month":"3","text":"March 2018"},{"year":"2018","month":"2","text":"February 2018"}],"mediaTrash":0,"infiniteScrolling":0}}; /* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/media-views.min.js?ver=6.7.2" id="media-views-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/media-editor.min.js?ver=6.7.2" id="media-editor-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/media-audiovideo.min.js?ver=6.7.2" id="media-audiovideo-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/js/jquery.magnific-popup.min.js?ver=6.7.2" id="kitolms-magnific-popup-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/js/popper.min.js?ver=6.7.2" id="kitolms-popper-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/js/bootstrap.min.js?ver=6.7.2" id="kitolms-bootstrap-min-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/js/select2.min.js?ver=6.7.2" id="kitolms-select2-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/js/slick.js?ver=6.7.2" id="kitolms-slick-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/js/moment.min.js?ver=6.7.2" id="kitolms-moment-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/js/metisMenu.min.js?ver=6.7.2" id="kitolms-metisMenu-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-includes/js/comment-reply.min.js?ver=6.7.2" id="comment-reply-js" async="async" data-wp-strategy="async"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/js/navigation.js?ver=6.7.2" id="kitolms-navigation-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/js/skip-link-focus-fix.js?ver=6.7.2" id="kito-focus-fix-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/js/custom.js?ver=6.7.2" id="kitolms-custom-js"></script> <script type="text/javascript" id="kitolms-main-js-extra"> /* <![CDATA[ */ var ajax_object = {"ajaxurl":"https:\/\/detkin.ese.upenn.edu\/wp-admin\/admin-ajax.php","redirecturl":"https:\/\/detkin.ese.upenn.edu\/resources\/parts","loadingmessage":"Sending user info, please wait..."}; /* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/themes/kitolms/assets/js/main.js?ver=6.7.2" id="kitolms-main-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/plugins/google-calendar-events/assets/generated/vendor/jquery.qtip.min.js?ver=3.4.9" id="simcal-qtip-js"></script> <script type="text/javascript" id="simcal-default-calendar-js-extra"> /* <![CDATA[ */ var simcal_default_calendar = {"ajax_url":"\/wp-admin\/admin-ajax.php","nonce":"b5089c6cdc","locale":"en_US","text_dir":"ltr","months":{"full":["January","February","March","April","May","June","July","August","September","October","November","December"],"short":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]},"days":{"full":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"short":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},"meridiem":{"AM":"AM","am":"am","PM":"PM","pm":"pm"}}; /* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/plugins/google-calendar-events/assets/generated/default-calendar.min.js?ver=3.4.9" id="simcal-default-calendar-js"></script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/plugins/youtube-embed-plus/scripts/fitvids.min.js?ver=14.2.1.3" id="__ytprefsfitvids__-js"></script> <script type="text/javascript" src="https://stats.wp.com/e-202510.js" id="jetpack-stats-js" data-wp-strategy="defer"></script> <script type="text/javascript" id="jetpack-stats-js-after"> /* <![CDATA[ */ _stq = window._stq || []; _stq.push([ "view", JSON.parse("{\"v\":\"ext\",\"blog\":\"237109088\",\"post\":\"70\",\"tz\":\"-5\",\"srv\":\"detkin.ese.upenn.edu\",\"j\":\"1:14.3\"}") ]); _stq.push([ "clickTrackerInit", "237109088", "70" ]); /* ]]> */ </script> <script type="text/javascript" src="https://detkin.ese.upenn.edu/wp-content/plugins/google-calendar-events/assets/generated/vendor/imagesloaded.pkgd.min.js?ver=3.4.9" id="simplecalendar-imagesloaded-js"></script> <script> /(trident|msie)/i.test(navigator.userAgent)&&document.getElementById&&window.addEventListener&&window.addEventListener("hashchange",function(){var t,e=location.hash.substring(1);/^[A-z0-9_-]+$/.test(e)&&(t=document.getElementById(e))&&(/^(?:a|select|input|button|textarea)$/i.test(t.tagName)||(t.tabIndex=-1),t.focus())},!1); </script> </div> </body> </html>