{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es6.string.fixed.js","webpack:///./node_modules/gatsby-image/index.js","webpack:///./src/components/layout.js","webpack:///./node_modules/core-js/modules/es6.array.find-index.js","webpack:///./src/components/header.js","webpack:///./node_modules/core-js/modules/_string-html.js","webpack:///./src/pages/sam.js","webpack:///./src/components/footer.js","webpack:///./.cache/gatsby-browser-entry.js","webpack:///./.cache/public-page-renderer.js","webpack:///./.cache/public-page-renderer-prod.js"],"names":["createHTML","this","_interopRequireDefault","require","exports","__esModule","io","_assertThisInitialized2","_inheritsLoose2","_objectWithoutPropertiesLoose2","_extends2","_react","_propTypes","convertProps","props","convertedProps","resolutions","sizes","critical","fixed","fluid","loading","groupByMedia","concat","matchesMedia","_ref","media","isBrowser","window","matchMedia","matches","getImageSrcKey","_ref2","getCurrentSrcData","src","currentData","Array","isArray","some","image","hasArtDirectionSupport","foundMedia","findIndex","imageCache","Object","create","inImageCache","hasNativeLazyLoadSupport","HTMLImageElement","prototype","hasIOSupport","IntersectionObserver","listeners","WeakMap","generateImageSources","imageVariants","map","_ref3","srcSet","srcSetWebp","createElement","Fragment","key","type","withMedia","without","forEach","variant","push","generateTracedSVGSources","_ref4","tracedSVG","generateBase64Sources","_ref5","base64","generateNoscriptSource","_ref6","isWebp","listenToIntersections","el","cb","observer","entries","entry","has","target","get","isIntersecting","intersectionRatio","unobserve","rootMargin","observe","set","noscriptImg","title","alt","width","height","crossOrigin","draggable","join","Placeholder","_ref7","generateSources","spreadProps","baseImage","Img","length","forwardRef","ref","style","onLoad","onError","otherProps","position","top","left","objectFit","objectPosition","propTypes","object","func","Image","_React$Component","_this","call","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","isVisible","state","imgLoaded","imgCached","imageRef","createRef","handleImageLoaded","bind","handleRef","_proto","componentDidMount","onStartLoad","wasCached","img","current","complete","componentWillUnmount","cleanUpListeners","_this2","imageInCache","setState","currentSrc","render","_convertProps","className","_convertProps$style","_convertProps$imgStyl","imgStyle","_convertProps$placeho","placeholderStyle","placeholderClassName","backgroundColor","durationFadeIn","Tag","itemProp","shouldReveal","shouldFadeIn","imageStyle","opacity","transition","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","overflow","JSON","stringify","paddingBottom","aspectRatio","bottom","right","dangerouslySetInnerHTML","__html","_imageVariants","_image","divStyle","display","Component","defaultProps","fixedObject","shape","number","isRequired","string","srcWebp","fluidObject","oneOfType","arrayOf","bool","oneOf","_default","Layout","layoutStyles","container","children","$export","$find","KEY","forced","P","F","callbackfn","arguments","undefined","Header","navStyles","navItem","activeClassName","activeNavitem","to","fails","defined","quot","tag","attribute","value","S","String","p1","replace","module","NAME","exec","O","test","toLowerCase","split","Sam","data","class","frameborder","webkitallowfullscreen","mozallowfullscreen","allowfullscreen","href","imageOne","childImageSharp","imageTwo","imageThree","imageFour","imageFive","imageSix","imageSeven","imageEight","imageNine","imageTen","imageEleven","imageTwelve","imageThirteen","imageFourteen","imageFifteen","imageSixteen","imageSeventeen","imageEighteen","imageNineteen","Footer","loader","enqueue","React","createContext","m","default","ProdPageRenderer","location","pageResources","InternalPageRenderer","json"],"mappings":"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","file":"component---src-pages-sam-js-f6a3452e297cf362bdd6.js","sourcesContent":["'use strict';\n// B.2.3.6 String.prototype.fixed()\nrequire('./_string-html')('fixed', function (createHTML) {\n return function fixed() {\n return createHTML(this, 'tt', '', '');\n };\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports[\"default\"] = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar logDeprecationNotice = function logDeprecationNotice(prop, replacement) {\n if (process.env.NODE_ENV === \"production\") {\n return;\n }\n\n console.log(\"\\n The \\\"\" + prop + \"\\\" prop is now deprecated and will be removed in the next major version\\n of \\\"gatsby-image\\\".\\n \");\n\n if (replacement) {\n console.log(\"Please use \" + replacement + \" instead of \\\"\" + prop + \"\\\".\");\n }\n}; // Handle legacy props during their deprecation phase\n\n\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2[\"default\"])({}, props);\n var resolutions = convertedProps.resolutions,\n sizes = convertedProps.sizes,\n critical = convertedProps.critical;\n\n if (resolutions) {\n convertedProps.fixed = resolutions;\n delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\n delete convertedProps.sizes;\n }\n\n if (critical) {\n logDeprecationNotice(\"critical\", \"the native \\\"loading\\\" attribute\");\n convertedProps.loading = \"eager\";\n } // convert fluid & fixed to arrays so we only have to work with arrays\n\n\n if (convertedProps.fluid) {\n convertedProps.fluid = groupByMedia([].concat(convertedProps.fluid));\n }\n\n if (convertedProps.fixed) {\n convertedProps.fixed = groupByMedia([].concat(convertedProps.fixed));\n }\n\n return convertedProps;\n};\n/**\n * Checks if fluid or fixed are art-direction arrays.\n *\n * @param currentData {{media?: string}[]} The props to check for images.\n * @return {boolean}\n */\n\n\nvar hasArtDirectionSupport = function hasArtDirectionSupport(currentData) {\n return !!currentData && Array.isArray(currentData) && currentData.some(function (image) {\n return typeof image.media !== \"undefined\";\n });\n};\n/**\n * Tries to detect if a media query matches the current viewport.\n * @property media {{media?: string}} A media query string.\n * @return {boolean}\n */\n\n\nvar matchesMedia = function matchesMedia(_ref) {\n var media = _ref.media;\n return media ? isBrowser && !!window.matchMedia(media).matches : false;\n};\n/**\n * Find the source of an image to use as a key in the image cache.\n * Use `the first image in either `fixed` or `fluid`\n * @param {{fluid: {src: string, media?: string}[], fixed: {src: string, media?: string}[]}} args\n * @return {string}\n */\n\n\nvar getImageSrcKey = function getImageSrcKey(_ref2) {\n var fluid = _ref2.fluid,\n fixed = _ref2.fixed;\n var data = fluid ? getCurrentSrcData(fluid) : getCurrentSrcData(fixed);\n return data.src;\n};\n/**\n * Returns the current src - Preferably with art-direction support.\n * @param currentData {{media?: string}[]} The fluid or fixed image array.\n * @return {{src: string, media?: string}}\n */\n\n\nvar getCurrentSrcData = function getCurrentSrcData(currentData) {\n if (isBrowser && hasArtDirectionSupport(currentData)) {\n // Do we have an image for the current Viewport?\n var foundMedia = currentData.findIndex(matchesMedia);\n\n if (foundMedia !== -1) {\n return currentData[foundMedia];\n }\n } // Else return the first image.\n\n\n return currentData[0];\n}; // Cache if we've seen an image before so we don't bother with\n// lazy-loading & fading in on subsequent mounts.\n\n\nvar imageCache = Object.create({});\n\nvar inImageCache = function inImageCache(props) {\n var convertedProps = convertProps(props); // Find src\n\n var src = getImageSrcKey(convertedProps);\n return imageCache[src] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props); // Find src\n\n var src = getImageSrcKey(convertedProps);\n imageCache[src] = true;\n}; // Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\n\n\nvar hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nvar isBrowser = typeof window !== \"undefined\";\nvar hasIOSupport = isBrowser && window.IntersectionObserver;\nvar io;\nvar listeners = new WeakMap();\n\nfunction getIO() {\n if (typeof io === \"undefined\" && typeof window !== \"undefined\" && window.IntersectionObserver) {\n io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (listeners.has(entry.target)) {\n var cb = listeners.get(entry.target); // Edge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(entry.target);\n listeners[\"delete\"](entry.target);\n cb();\n }\n }\n });\n }, {\n rootMargin: \"200px\"\n });\n }\n\n return io;\n}\n\nfunction generateImageSources(imageVariants) {\n return imageVariants.map(function (_ref3) {\n var src = _ref3.src,\n srcSet = _ref3.srcSet,\n srcSetWebp = _ref3.srcSetWebp,\n media = _ref3.media,\n sizes = _ref3.sizes;\n return _react[\"default\"].createElement(_react[\"default\"].Fragment, {\n key: src\n }, srcSetWebp && _react[\"default\"].createElement(\"source\", {\n type: \"image/webp\",\n media: media,\n srcSet: srcSetWebp,\n sizes: sizes\n }), _react[\"default\"].createElement(\"source\", {\n media: media,\n srcSet: srcSet,\n sizes: sizes\n }));\n });\n} // Return an array ordered by elements having a media prop, does not use\n// native sort, as a stable sort is not guaranteed by all browsers/versions\n\n\nfunction groupByMedia(imageVariants) {\n var withMedia = [];\n var without = [];\n imageVariants.forEach(function (variant) {\n return (variant.media ? withMedia : without).push(variant);\n });\n\n if (without.length > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"We've found \" + without.length + \" sources without a media property. They might be ignored by the browser, see: https://www.gatsbyjs.org/packages/gatsby-image/#art-directing-multiple-images\");\n }\n\n return [].concat(withMedia, without);\n}\n\nfunction generateTracedSVGSources(imageVariants) {\n return imageVariants.map(function (_ref4) {\n var src = _ref4.src,\n media = _ref4.media,\n tracedSVG = _ref4.tracedSVG;\n return _react[\"default\"].createElement(\"source\", {\n key: src,\n media: media,\n srcSet: tracedSVG\n });\n });\n}\n\nfunction generateBase64Sources(imageVariants) {\n return imageVariants.map(function (_ref5) {\n var src = _ref5.src,\n media = _ref5.media,\n base64 = _ref5.base64;\n return _react[\"default\"].createElement(\"source\", {\n key: src,\n media: media,\n srcSet: base64\n });\n });\n}\n\nfunction generateNoscriptSource(_ref6, isWebp) {\n var srcSet = _ref6.srcSet,\n srcSetWebp = _ref6.srcSetWebp,\n media = _ref6.media,\n sizes = _ref6.sizes;\n var src = isWebp ? srcSetWebp : srcSet;\n var mediaAttr = media ? \"media=\\\"\" + media + \"\\\" \" : \"\";\n var typeAttr = isWebp ? \"type='image/webp' \" : \"\";\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\" \" : \"\";\n return \"\";\n}\n\nfunction generateNoscriptSources(imageVariants) {\n return imageVariants.map(function (variant) {\n return (variant.srcSetWebp ? generateNoscriptSource(variant, true) : \"\") + generateNoscriptSource(variant);\n }).join(\"\");\n}\n\nvar listenToIntersections = function listenToIntersections(el, cb) {\n var observer = getIO();\n\n if (observer) {\n observer.observe(el);\n listeners.set(el, cb);\n }\n\n return function () {\n observer.unobserve(el);\n listeners[\"delete\"](el);\n };\n};\n\nvar noscriptImg = function noscriptImg(props) {\n // Check if prop exists before adding each attribute to the string output below to prevent\n // HTML validation issues caused by empty values like width=\"\" and height=\"\"\n var src = props.src ? \"src=\\\"\" + props.src + \"\\\" \" : \"src=\\\"\\\" \"; // required attribute\n\n var sizes = props.sizes ? \"sizes=\\\"\" + props.sizes + \"\\\" \" : \"\";\n var srcSet = props.srcSet ? \"srcset=\\\"\" + props.srcSet + \"\\\" \" : \"\";\n var title = props.title ? \"title=\\\"\" + props.title + \"\\\" \" : \"\";\n var alt = props.alt ? \"alt=\\\"\" + props.alt + \"\\\" \" : \"alt=\\\"\\\" \"; // required attribute\n\n var width = props.width ? \"width=\\\"\" + props.width + \"\\\" \" : \"\";\n var height = props.height ? \"height=\\\"\" + props.height + \"\\\" \" : \"\";\n var crossOrigin = props.crossOrigin ? \"crossorigin=\\\"\" + props.crossOrigin + \"\\\" \" : \"\";\n var loading = props.loading ? \"loading=\\\"\" + props.loading + \"\\\" \" : \"\";\n var draggable = props.draggable ? \"draggable=\\\"\" + props.draggable + \"\\\" \" : \"\";\n var sources = generateNoscriptSources(props.imageVariants);\n return \"\" + sources + \"\";\n}; // Earlier versions of gatsby-image during the 2.x cycle did not wrap\n// the `Img` component in a `picture` element. This maintains compatibility\n// until a breaking change can be introduced in the next major release\n\n\nvar Placeholder = function Placeholder(_ref7) {\n var src = _ref7.src,\n imageVariants = _ref7.imageVariants,\n generateSources = _ref7.generateSources,\n spreadProps = _ref7.spreadProps;\n\n var baseImage = _react[\"default\"].createElement(Img, (0, _extends2[\"default\"])({\n src: src\n }, spreadProps));\n\n return imageVariants.length > 1 ? _react[\"default\"].createElement(\"picture\", null, generateSources(imageVariants), baseImage) : baseImage;\n};\n\nvar Img = _react[\"default\"].forwardRef(function (props, ref) {\n var sizes = props.sizes,\n srcSet = props.srcSet,\n src = props.src,\n style = props.style,\n onLoad = props.onLoad,\n onError = props.onError,\n loading = props.loading,\n draggable = props.draggable,\n otherProps = (0, _objectWithoutPropertiesLoose2[\"default\"])(props, [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\", \"loading\", \"draggable\"]);\n return _react[\"default\"].createElement(\"img\", (0, _extends2[\"default\"])({\n sizes: sizes,\n srcSet: srcSet,\n src: src\n }, otherProps, {\n onLoad: onLoad,\n onError: onError,\n ref: ref,\n loading: loading,\n draggable: draggable,\n style: (0, _extends2[\"default\"])({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n objectPosition: \"center\"\n }, style)\n }));\n});\n\nImg.propTypes = {\n style: _propTypes[\"default\"].object,\n onError: _propTypes[\"default\"].func,\n onLoad: _propTypes[\"default\"].func\n};\n\nvar Image =\n/*#__PURE__*/\nfunction (_React$Component) {\n (0, _inheritsLoose2[\"default\"])(Image, _React$Component);\n\n function Image(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // If this image has already been loaded before then we can assume it's\n // already in the browser cache so it's cheap to just show directly.\n\n _this.seenBefore = isBrowser && inImageCache(props);\n _this.isCritical = props.loading === \"eager\" || props.critical;\n _this.addNoScript = !(_this.isCritical && !props.fadeIn);\n _this.useIOSupport = !hasNativeLazyLoadSupport && hasIOSupport && !_this.isCritical && !_this.seenBefore;\n var isVisible = _this.isCritical || isBrowser && (hasNativeLazyLoadSupport || !_this.useIOSupport);\n _this.state = {\n isVisible: isVisible,\n imgLoaded: false,\n imgCached: false,\n fadeIn: !_this.seenBefore && props.fadeIn\n };\n _this.imageRef = _react[\"default\"].createRef();\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2[\"default\"])(_this));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2[\"default\"])(_this));\n return _this;\n }\n\n var _proto = Image.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.state.isVisible && typeof this.props.onStartLoad === \"function\") {\n this.props.onStartLoad({\n wasCached: inImageCache(this.props)\n });\n }\n\n if (this.isCritical) {\n var img = this.imageRef.current;\n\n if (img && img.complete) {\n this.handleImageLoaded();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.cleanUpListeners) {\n this.cleanUpListeners();\n }\n } // Specific to IntersectionObserver based lazy-load support\n ;\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.useIOSupport && ref) {\n this.cleanUpListeners = listenToIntersections(ref, function () {\n var imageInCache = inImageCache(_this2.props);\n\n if (!_this2.state.isVisible && typeof _this2.props.onStartLoad === \"function\") {\n _this2.props.onStartLoad({\n wasCached: imageInCache\n });\n } // imgCached and imgLoaded must update after isVisible,\n // Once isVisible is true, imageRef becomes accessible, which imgCached needs access to.\n // imgLoaded and imgCached are in a 2nd setState call to be changed together,\n // avoiding initiating unnecessary animation frames from style changes.\n\n\n _this2.setState({\n isVisible: true\n }, function () {\n return _this2.setState({\n imgLoaded: imageInCache,\n // `currentSrc` should be a string, but can be `undefined` in IE,\n // !! operator validates the value is not undefined/null/\"\"\n imgCached: !!_this2.imageRef.current.currentSrc\n });\n });\n });\n }\n };\n\n _proto.handleImageLoaded = function handleImageLoaded() {\n activateCacheForImage(this.props);\n this.setState({\n imgLoaded: true\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n };\n\n _proto.render = function render() {\n var _convertProps = convertProps(this.props),\n title = _convertProps.title,\n alt = _convertProps.alt,\n className = _convertProps.className,\n _convertProps$style = _convertProps.style,\n style = _convertProps$style === void 0 ? {} : _convertProps$style,\n _convertProps$imgStyl = _convertProps.imgStyle,\n imgStyle = _convertProps$imgStyl === void 0 ? {} : _convertProps$imgStyl,\n _convertProps$placeho = _convertProps.placeholderStyle,\n placeholderStyle = _convertProps$placeho === void 0 ? {} : _convertProps$placeho,\n placeholderClassName = _convertProps.placeholderClassName,\n fluid = _convertProps.fluid,\n fixed = _convertProps.fixed,\n backgroundColor = _convertProps.backgroundColor,\n durationFadeIn = _convertProps.durationFadeIn,\n Tag = _convertProps.Tag,\n itemProp = _convertProps.itemProp,\n loading = _convertProps.loading,\n draggable = _convertProps.draggable;\n\n var shouldReveal = this.state.fadeIn === false || this.state.imgLoaded;\n var shouldFadeIn = this.state.fadeIn === true && !this.state.imgCached;\n var imageStyle = (0, _extends2[\"default\"])({\n opacity: shouldReveal ? 1 : 0,\n transition: shouldFadeIn ? \"opacity \" + durationFadeIn + \"ms\" : \"none\"\n }, imgStyle);\n var bgColor = typeof backgroundColor === \"boolean\" ? \"lightgray\" : backgroundColor;\n var delayHideStyle = {\n transitionDelay: durationFadeIn + \"ms\"\n };\n var imagePlaceholderStyle = (0, _extends2[\"default\"])({\n opacity: this.state.imgLoaded ? 0 : 1\n }, shouldFadeIn && delayHideStyle, {}, imgStyle, {}, placeholderStyle);\n var placeholderImageProps = {\n title: title,\n alt: !this.state.isVisible ? alt : \"\",\n style: imagePlaceholderStyle,\n className: placeholderClassName,\n itemProp: itemProp\n };\n\n if (fluid) {\n var imageVariants = fluid;\n var image = getCurrentSrcData(fluid);\n return _react[\"default\"].createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2[\"default\"])({\n position: \"relative\",\n overflow: \"hidden\"\n }, style),\n ref: this.handleRef,\n key: \"fluid-\" + JSON.stringify(image.srcSet)\n }, _react[\"default\"].createElement(Tag, {\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), bgColor && _react[\"default\"].createElement(Tag, {\n title: title,\n style: (0, _extends2[\"default\"])({\n backgroundColor: bgColor,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n opacity: !this.state.imgLoaded ? 1 : 0,\n right: 0,\n left: 0\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && _react[\"default\"].createElement(Placeholder, {\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && _react[\"default\"].createElement(Placeholder, {\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && _react[\"default\"].createElement(\"picture\", null, generateImageSources(imageVariants), _react[\"default\"].createElement(Img, {\n alt: alt,\n title: title,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && _react[\"default\"].createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2[\"default\"])({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n if (fixed) {\n var _imageVariants = fixed;\n\n var _image = getCurrentSrcData(fixed);\n\n var divStyle = (0, _extends2[\"default\"])({\n position: \"relative\",\n overflow: \"hidden\",\n display: \"inline-block\",\n width: _image.width,\n height: _image.height\n }, style);\n\n if (style.display === \"inherit\") {\n delete divStyle.display;\n }\n\n return _react[\"default\"].createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: divStyle,\n ref: this.handleRef,\n key: \"fixed-\" + JSON.stringify(_image.srcSet)\n }, bgColor && _react[\"default\"].createElement(Tag, {\n title: title,\n style: (0, _extends2[\"default\"])({\n backgroundColor: bgColor,\n width: _image.width,\n opacity: !this.state.imgLoaded ? 1 : 0,\n height: _image.height\n }, shouldFadeIn && delayHideStyle)\n }), _image.base64 && _react[\"default\"].createElement(Placeholder, {\n src: _image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: _imageVariants,\n generateSources: generateBase64Sources\n }), _image.tracedSVG && _react[\"default\"].createElement(Placeholder, {\n src: _image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: _imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && _react[\"default\"].createElement(\"picture\", null, generateImageSources(_imageVariants), _react[\"default\"].createElement(Img, {\n alt: alt,\n title: title,\n width: _image.width,\n height: _image.height,\n sizes: _image.sizes,\n src: _image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: _image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && _react[\"default\"].createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2[\"default\"])({\n alt: alt,\n title: title,\n loading: loading\n }, _image, {\n imageVariants: _imageVariants\n }))\n }\n }));\n }\n\n return null;\n };\n\n return Image;\n}(_react[\"default\"].Component);\n\nImage.defaultProps = {\n fadeIn: true,\n durationFadeIn: 500,\n alt: \"\",\n Tag: \"div\",\n // We set it to `lazy` by default because it's best to default to a performant\n // setting and let the user \"opt out\" to `eager`\n loading: \"lazy\"\n};\n\nvar fixedObject = _propTypes[\"default\"].shape({\n width: _propTypes[\"default\"].number.isRequired,\n height: _propTypes[\"default\"].number.isRequired,\n src: _propTypes[\"default\"].string.isRequired,\n srcSet: _propTypes[\"default\"].string.isRequired,\n base64: _propTypes[\"default\"].string,\n tracedSVG: _propTypes[\"default\"].string,\n srcWebp: _propTypes[\"default\"].string,\n srcSetWebp: _propTypes[\"default\"].string,\n media: _propTypes[\"default\"].string\n});\n\nvar fluidObject = _propTypes[\"default\"].shape({\n aspectRatio: _propTypes[\"default\"].number.isRequired,\n src: _propTypes[\"default\"].string.isRequired,\n srcSet: _propTypes[\"default\"].string.isRequired,\n sizes: _propTypes[\"default\"].string.isRequired,\n base64: _propTypes[\"default\"].string,\n tracedSVG: _propTypes[\"default\"].string,\n srcWebp: _propTypes[\"default\"].string,\n srcSetWebp: _propTypes[\"default\"].string,\n media: _propTypes[\"default\"].string\n}); // If you modify these propTypes, please don't forget to update following files as well:\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/index.d.ts\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/README.md#gatsby-image-props\n// https://github.com/gatsbyjs/gatsby/blob/master/docs/docs/gatsby-image.md#gatsby-image-props\n\n\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: _propTypes[\"default\"].oneOfType([fixedObject, _propTypes[\"default\"].arrayOf(fixedObject)]),\n fluid: _propTypes[\"default\"].oneOfType([fluidObject, _propTypes[\"default\"].arrayOf(fluidObject)]),\n fadeIn: _propTypes[\"default\"].bool,\n durationFadeIn: _propTypes[\"default\"].number,\n title: _propTypes[\"default\"].string,\n alt: _propTypes[\"default\"].string,\n className: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].object]),\n // Support Glamor's css prop.\n critical: _propTypes[\"default\"].bool,\n crossOrigin: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].bool]),\n style: _propTypes[\"default\"].object,\n imgStyle: _propTypes[\"default\"].object,\n placeholderStyle: _propTypes[\"default\"].object,\n placeholderClassName: _propTypes[\"default\"].string,\n backgroundColor: _propTypes[\"default\"].oneOfType([_propTypes[\"default\"].string, _propTypes[\"default\"].bool]),\n onLoad: _propTypes[\"default\"].func,\n onError: _propTypes[\"default\"].func,\n onStartLoad: _propTypes[\"default\"].func,\n Tag: _propTypes[\"default\"].string,\n itemProp: _propTypes[\"default\"].string,\n loading: _propTypes[\"default\"].oneOf([\"auto\", \"lazy\", \"eager\"]),\n draggable: _propTypes[\"default\"].bool\n};\nvar _default = Image;\nexports[\"default\"] = _default;","import React from \"react\"\nimport Header from \"./header\"\nimport Footer from \"./footer\"\nimport \"../styles/main.scss\"\nimport layoutStyles from \"./layout.module.scss\"\n\nconst Layout = (props) => {\n\n return(\n \n
\n
\n
\n { props.children } \n
\n \n )\n}\n\nexport default Layout","'use strict';\n// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)\nvar $export = require('./_export');\nvar $find = require('./_array-methods')(6);\nvar KEY = 'findIndex';\nvar forced = true;\n// Shouldn't skip holes\nif (KEY in []) Array(1)[KEY](function () { forced = false; });\n$export($export.P + $export.F * forced, 'Array', {\n findIndex: function findIndex(callbackfn /* , that = undefined */) {\n return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\nrequire('./_add-to-unscopables')(KEY);\n","import React from \"react\"\nimport { Link } from \"gatsby\"\nimport navStyles from \"./nav.module.scss\"\n\nconst Header = () => {\n return ( \n \n )\n}\n\nexport default Header\n\n","var $export = require('./_export');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar quot = /\"/g;\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\nvar createHTML = function (string, tag, attribute, value) {\n var S = String(defined(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\nmodule.exports = function (NAME, exec) {\n var O = {};\n O[NAME] = exec(createHTML);\n $export($export.P + $export.F * fails(function () {\n var test = ''[NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n }), 'String', O);\n};\n","import React from \"react\"\nimport { Link, graphql, useStaticQuery } from \"gatsby\"\nimport Img from \"gatsby-image\"\nimport Layout from \"../components/layout\"\n\nconst Sam = () => {\n\n const data = useStaticQuery(graphql`\n query {\n imageOne: file(relativePath: { eq: \"projects_02/gallery/aaa_000.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageTwo: file(relativePath: { eq: \"projects_02/gallery/aaa_001.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageThree: file(relativePath: { eq: \"projects_02/gallery/aaa_002.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageFour: file(relativePath: { eq: \"projects_02/gallery/aaa_003.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageFive: file(relativePath: { eq: \"projects_02/gallery/aaa_004.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageSix: file(relativePath: { eq: \"projects_02/gallery/aaa_005.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageSeven: file(relativePath: { eq: \"projects_02/gallery/aaa_006.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageEight: file(relativePath: { eq: \"projects_02/gallery/aaa_007.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageNine: file(relativePath: { eq: \"projects_02/gallery/aaa_008.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageTen: file(relativePath: { eq: \"projects_02/gallery/aaa_009.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageEleven: file(relativePath: { eq: \"projects_02/gallery/aaa_010.png\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageTwelve: file(relativePath: { eq: \"projects_02/gallery/aaa_011.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageThirteen: file(relativePath: { eq: \"projects_02/gallery/aaa_012.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageFourteen: file(relativePath: { eq: \"projects_02/gallery/aaa_013.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageFifteen: file(relativePath: { eq: \"projects_02/gallery/aaa_014.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageSixteen: file(relativePath: { eq: \"projects_02/gallery/aaa_015.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageSeventeen: file(relativePath: { eq: \"projects_02/gallery/aaa_016.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageEighteen: file(relativePath: { eq: \"projects_02/gallery/aaa_017.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n imageNineteen: file(relativePath: { eq: \"projects_02/gallery/aaa_018.jpg\" }) {\n childImageSharp {\n fluid(maxWidth: 1000) {\n ...GatsbyImageSharpFluid\n }\n }\n }\n }\n `)\n \n return (\n \n
\n
\n \n

SAM@Bobo. Centre Pompidou. Paris, March 2016

\n
\n\n
\n

A Drawing Machine

\n
\n

\n SAM is a drawing machine inspired by the first plotters and the\n arrival of computer art in the 1960s. Initiated with one of my\n students from{\" \"}\n \n ésad d'Amiens\n {\" \"}\n as part of his apprenticeship, we conceived and built from scratch a\n machine and fondly named it SAM. You can read about the process in\n detail on the{\" \"}\n \n official web site\n {\" \"}\n we made specifically for the project. SAM was first presented to the\n public at the school in 2015 as part of La Nuit Blanche. It has since\n had the honor of travelling to Bordeaux as part of a workshop and\n installation at{\" \"}\n \n La Librairie Mollat\n {\" \"}\n and stole the show at La Fête du Code at the prestigious Centre\n Pompidou in March 2017.\n

\n\n

\n Project type : Research/Art Installation\n
\n Tools used : Custom-made tools in Processing, Arduino\n
\n Web site :{\" \"}\n \n www.samdraws.bitbucket.io\n \n
\n Code Repository :{\" \"}\n \n Home Brew Dev\n \n

\n
\n\n
\n \n

\n The first portrait drawn by SAM at La Nuit Blanche d'Amiens. 2014\n

\n
\n\n
\n
\n \n \n \n \n \n \n
\n

\n Some of the first concepts, a quick and dirty prototype and two of the\n first drawings. 2014\n

\n
\n\n
\n \n

\n Detailed plans for SAM's hand and a first prototype.\n

\n
\n\n
\n

\n SAM took a few months to put together and we had lots of fun on the\n way. We learnt about mechanics, electronics, woodwork, stepper motors,\n linear motion systems and all that before scratching our heads on what\n SAM would draw. Whilst many recent plotter projects are happy to draw\n directly from vector based files, our ambition for SAM was to focus a\n little more on that 'how' of the drawing process. For this reason the\n project was an on-going affair in which we have tried to develop new\n tools and approaches for each workshop and installation.\n

\n
\n

\n\n
\n \n

\n Shows some first iterations for software and output. 2015\n

\n
\n\n
\n
\n \n \n

Drawings La Nuit Blanche. 2014

\n
\n
\n\n
\n
\n

\n \"In all the fuss today with AI and machine learning, we tend to\n forget that the machine is not a conscious entity and is incapable\n of 'knowing' anything about art, drawing or aesthetics.\"\n

\n
\n
\n\n
\n
\n

SAM@Pompidou

\n
\n
\n\n
\n

\n For our last project with the Centre Pompidou in Paris we managed to\n put together a really fun and successful installation that began to\n answer in part how SAM could draw. The initial concept was to imagine\n a collaborative art piece that reveals a little of the mystery behind\n code and programming for artistic purposes. A computer program is a\n set of precise instructions. To get kids to understand this basic\n concept, we developed a piece of software that generated join the dot\n diagrams from photos taken by participants. They then proceeded to\n draw their portraits whilst SAM proceeded to draw exactly the same\n image and from the same set of instructions - a list of dots to\n connect.\n

\n
\n

\n\n
\n
\n \n \n
\n

\n Custom-made blob detection software used for the Pompidou\n installation. January 2017\n

\n
\n\n
\n
\n

\n \"The idea becomes the machine that makes the art.\"

\n Sol LeWitt. Paragraphs On Conceptual Art. 1967.\n

\n
\n
\n\n
\n

\n What ensued from that immensly fascinating creative process was a\n subtle mix of pedagogy for the kids and a critical view of the machine\n vs man for the adults.{\" \"}\n \n You can read more about the process behind this project on our\n official website for SAM.\n \n

\n
\n

\n\n
\n
\n \n \n \n \n \n \n
\n

\n A small selection of the drawings by SAM during the Pompidou\n installation. March 2016\n

\n
\n\n
\n
\n \n

\n Drawing from Codex workshop in Bordeaux. January 2016\n

\n
\n
\n
\n )\n}\n\nexport default Sam\n","import React from \"react\"\n\nconst Footer = () => {\n\n return (\n \n )\n}\n\nexport default Footer\n\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n const context = React.useContext(StaticQueryContext)\n if (context[query] && context[query].data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n push, // TODO replace for v3\n replace, // TODO remove replace for v3\n navigateTo, // TODO: remove navigateTo for v3\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location, pageResources }) => {\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n"],"sourceRoot":""}