CINXE.COM
Vitamins & minerals for kids & teens | Raising Children Network
<!DOCTYPE html> <html lang="en"> <head> <!-- begin src-matrix/nested-content/head/global-design-head-site-state.html --> <script> var window = window || {}; window.sq = (function (exports) { 'use strict'; // # General Utility Functions // // ## Debug // Wrap a function or object to see the output in console. // ### Usage // ``` // const reduce = data => (debug({url: data.url})) // ``` // ### Function var debug = function (obj, trace) { if ( trace === void 0 ) trace = false; console.log(obj); if (trace) { console.trace(); } return obj; }; // Decode data from Matrix ^rawurlencode and convert apostrophe to single-quote // Alternative to using base64 for matrix data var cleanString = function (str) { return decodeURIComponent(str).replace(/'/gi, '’'); }; var cleanStringQuotes = function (str) { return str.replace(/%22/gi, '"'); }; // Base64 encoding/decoding // https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding function b64EncodeUnicode(str) { // first we use encodeURIComponent to get percent-encoded UTF-8, // then we convert the percent encodings into raw bytes which // can be fed into btoa. return btoa( encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function toSolidBytes(match, p1) { return String.fromCharCode('0x' + p1); }) ); } function b64DecodeUnicode(str) { // Going backwards: from bytestream, to percent-encoding, to original string. return decodeURIComponent( atob(str) .split('') .map(function(c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }) .join('') ); } var maybeBase64Decode = function (text) { if (!text) { return ''; } try { return b64DecodeUnicode(text); } catch (e) { return text; } }; //const DIRTY = /&|<|>|"|script|iframe|=|\(|\)|\[|\]/gi; //javascript:alert var DIRTY = /data:text\/html|script|iframe|javascript:|<|>|\(|\)|\[|\]/gi; var clean = function (str) { str = str.replace(DIRTY, ' '); return str.replace(/'/gi, ''').replace(/"/gi, '"'); }; // ## Immutable Copy // Create a new version of an object var copy = function (obj) { return JSON.parse(JSON.stringify(obj)); }; var jsonEncode = function (obj, empty) { if ( empty === void 0 ) empty = {}; var result; try { result = JSON.stringify(obj); } catch (e) { var script = 'script'; if (typeof isV8 !== 'undefined') { print(("<" + script + ">console.error(" + (JSON.stringify(e)) + ")</" + script + ">")); } else { console.error(e); } result = JSON.stringify(empty); } return result; }; var jsonDecode = function (obj, empty) { if ( empty === void 0 ) empty = {}; var result = empty; try { result = JSON.parse(obj); } catch (e) { var script = 'script'; if (typeof isV8 !== 'undefined') { print(("<" + script + ">console.error(" + (JSON.stringify(e)) + ")</" + script + ">")); } else { console.error(e); } } return result; }; var convertMatrixBase64 = function (content) { return b64DecodeUnicode(content) .replace(/'/gi, ''') .replace(/\\\\\\"/gi, "'") .replace(/\\/gi, ''); }; // ## Immutable // Make a new copy of a value if it is an object and not a function var immutable = function (item) { return typeof item.target !== 'undefined' ? item // If is object and not a function then copy the object : typeof item === 'object' && typeof item !== 'function' ? copy(item) : item; }; // ## immutableAll // Create new copies of arguments and return as an array var immutableAll = function () { var args = [], len = arguments.length; while ( len-- ) args[ len ] = arguments[ len ]; return args.map(immutable); }; // ## pipe // Push result through a series of functions // ### Usage // ```js // const __convert = pipe(function1, function2, function3); // const result = __convert(...args); // // function1(...args) -> function2(resultFunction1) -> function3(resultFunction2) -> resultFunction3 // ``` // // ### Function var pipe = function (fn) { var fns = [], len = arguments.length - 1; while ( len-- > 0 ) fns[ len ] = arguments[ len + 1 ]; return function () { var args = [], len = arguments.length; while ( len-- ) args[ len ] = arguments[ len ]; return fns.reduce(function (acc, fn) { return fn(acc); }, fn.apply(void 0, immutableAll.apply(void 0, args))); }; }; // ## compose // Classic compose function for functional style programming. Results are piped through each function from right to left. // ### Usage // ```js // const result = compose(function3, function2, function1); // // function1(...args) -> function2(resultFunction1) -> function3(resultFunction2) -> resultFunction3 // ``` // // ### Function var compose = function () { var fns = [], len = arguments.length; while ( len-- ) fns[ len ] = arguments[ len ]; return pipe.apply(void 0, fns.reverse()); }; // ## __flatten // Flattens nested arrays into a flat array. // ### Usage // ```js // const result = __flatten([1, [2, [3, 4, [5, 6, 7]]); // // [1, 2, 3, 4, 5, 6, 7] // ``` // // ### Function var __flatten = function (out) { return function (list) { list.forEach(function (item) { if (Array.isArray(item)) { out = __flatten(out)(item); } else { out = out.concat(item); } }); return out; }; }; // ## flatten // Alias for __flatten. See __flatten for details. var flatten = function (nlist) { return __flatten([])(nlist); }; // ## generateUUID // Generates a uuid. // ### Usage // ```js // const uuid = generateUUID(); // // // ``` // // ### Function // ## r // Route helper for hyper app router event listener. // ### Usage // ```js // // When the routes '/' or '/search' is activated in window.location then call the function funnelbackRequest. // app({ // events: { // route: [ // r('/search', funnelbackRequest), // r('/', funnelbackRequest) // ], // }); // ``` // // ### Function // ## htmlDecode // Decode html entities. // ### Usage // ```js // htmlDecode('& < <'); // // "& < <" // ``` // // ### Function var htmlDecode = function (html) { var txt = document.createElement('textarea'); txt.innerHTML = html; return txt.value; }; // ## __replaceParams // Replace a param in a query string // ### Usage // ```js // // window.location.search === '?facet=blue&query=bingo+jones' // const result = __replaceParams(location.pathname + location.search)('query', 'hello+world'); // // /search?facet=blue&query=hello+world // ``` // // ### Function var __replaceParams = function (str) { return function (param, value) { var qsplit = str.split('?'); var query = qsplit[1] || ''; if (query.match(param)) { var querySplit = query.split('&'); var next = true, i = 0, final = querySplit.length; while (next) { var item = querySplit[i]; if (final === i) { next = false; } else if (item.indexOf(param) !== -1) { str = str.replace(item, (param + "=" + value)); next = false; } i++; } return str; } else { var newQstring = param + "=" + value; return query ? str + "" + (str.substr('-1') == '&' ? '' : '&') + newQstring : str + '?' + newQstring; } }; }; // ## getURLParameter // Get the value of a parameter from a query string. // ### Usage // ```js // // location.search == '?query=hello+world' // const result = getURLParameter('query', location.search); // // 'hello+world' // ``` // // ### Function function getUrlParameter(name, url) { if ( url === void 0 ) url = null; name = name .replace(/[\[]/, '\\[') .replace(/[\]]/, '\\]') .replace(/\./gi, '\\.') .replace(/\+/gi, '\\+'); var regex = new RegExp('[\\?&]' + name + '=([^&#]*)'); var results = regex.exec(url ? url : location.search); return results === null ? '' : decodeURIComponent(results[1].replace(/\+/g, ' ')); } // ## qparts // Split query param by space /** * Splits the query into words * @param query */ var qparts = function (query) { return query.split(' '); }; // ## highlight // Highlights a word 'qpart' in a string. // ### Usage // ```js // const result = highlight('juice', 'juicer'); // // <strong>juice</strong>r // ``` // // ### Function /** * Highlights a word 'qpart' in a string * @param qpart * @param str */ var __xhighlight = function (queryParts) { return function (strPart) { var keyword = queryParts.find(function (keyword) { return keyword.length > 2 && strPart.match(new RegExp(("(" + keyword + ")"), 'gi')); }); return keyword ? strPart.replace(new RegExp(("(" + keyword + ")"), 'gi'), '<strong>$1</strong>') : strPart; }; }; // ## highlightWords // Highlights all words in the query against matches in the title // ### Usage // ```js // const result = highlightWords('english', 'happy birthday english'); // // happy birthday <strong>english</strong> // ``` // // ### Function /** * Highlights all words in the query against matches in the title * @param query * @param str */ var highlightWords = function (query, str) { if (str) { var highlight = __xhighlight(qparts(query)); return qparts(str) .map(highlight) .join(' '); } else { return ''; } }; // ## slugify // Converts a string into something that can be used in a URI with no spaces and funny characters. // ### Usage // ```js // const result = slugify('hello world'); // // hello-world // ``` // // ### Function /** * @returns {string} */ var slugify = function (text) { return text .toString() .toLowerCase() .replace(/\s+/g, '-') // Replace spaces with - .replace(/[^\w\-]+/g, '') // Remove all non-word chars .replace(/\-\-+/g, '-') // Replace multiple - with single - .replace(/^-+/, '') // Trim - from start of text .replace(/-+$/, ''); // Trim - from end of text }; // ## KeyValue // Creates a key value object. // ### Usage // ```js // const result = KeyValue('query', 'hello+world'); // // result.key result.value // ``` // // ### Function var KeyValue = function KeyValue(key, value) { this.key = key; this.value = value; }; // ## objToQueryString // Converts an object to a list of KeyValue objects. // ### Usage // ```js // const result = objToQueryString({query: 'hello+world', category: 'blue'}); // // [KeyValue(hello, world), KeyValue(category, blue)] // ``` // // ### Function var objToQueryString = function (obj) { return Object.keys(obj).map(function (key) { return new KeyValue(key, obj[key]); }); }; // ## _parseQuery // Takes a string and converts to Array<KeyValue> // ### Usage // ```js // const result = _parseQuery('query=hello+world&category=blue'); // // [KeyValue(hello, world), KeyValue(category, blue)] // ``` // // ### Function var _parseQuery = function (str) { return str.split('&').map(function (qpart) { return new (Function.prototype.bind.apply( KeyValue, [ null ].concat( qpart.split('=')) )); }); }; // ## mergeQuery // Takes two queries of type Array<KeyValue> and merges them. // ### Usage // ```js // const result = mergeQuery( // objToQueryString({query: '!padrenull', cat: 'blue'}), // _parseQuery('query=hello+world') // ); // // [KeyValue(query, hello+world), KeyValue(cat, blue)] // ``` // // ### Function var mergeQuery = function (defaultQuery, query) { return defaultQuery .filter(function (param) { return !query.find(function (qparam) { return qparam.key == param.key; }); }) .concat(query); }; // ## generateQuery // Generate an Array<KeyValue> from a string and a default Array<KeyValue>. // ### Usage // ```js // const result = generateQuery('query=hello+world', [new KeyValue('query', '!padrenull')]); // // [KeyValue(query, hello+world)] // ``` // // ### Function var generateQuery = function (str, defaultQuery) { return mergeQuery(defaultQuery, _parseQuery(str)); }; // ## parseQuery // parse a query string using a default query. // ### Usage // ```js // const result = parseQuery('query=hello+world', [new KeyValue('query', '!padrenull')]); // // [KeyValue(query, hello+world)] // ``` // // ### Function var parseQuery = function (str, defaultQuery) { if ( defaultQuery === void 0 ) defaultQuery = []; return str && str.substr(0, 1) === '?' ? generateQuery(str.substr(1), defaultQuery) : str ? generateQuery(str, defaultQuery) : defaultQuery; }; var keyValuesToString = function (keyValues) { return keyValues.reduce(function (accum, item) { return (accum + "&" + (item.key) + "=" + (item.value)); }, '').substr(1); }; var keyValuesToQuery = function (keyValues) { return '?' + keyValuesToString(keyValues); }; var keyValuesToObject = function (keyValues) { var final = {}; keyValues.forEach(function (keyValue) { final[keyValue.key] = keyValue.value; }); return final; }; // ## isLocalhost // Check if is local development server var isLocalhost = function () { return location && location.hostname === 'localhost'; }; var createMarkup = function (markup) { return ({ __html: markup }); }; var reactKey = function (namespace, state, index) { return (namespace + "-" + (state.id) + "-" + index); }; var capitalize = function (string) { return string.charAt(0).toUpperCase() + string.slice(1); }; var isItems = function (items) { return Object.keys(items).length; }; var arrayFromSet = function (set) { var final = []; set.forEach(function (item) { return final.push(item); }); return final; }; var filterByKeys = function (keys, obj) { var result = {}; keys.forEach(function (key) { if (obj[key]) { result[key] = obj[key]; } }); return result; }; // # General Utility Functions for PRC // ## ageSuitability // Display age suitability range from provided months. If more than threshold, display as years. // ### Usage // ``` // const preheading = ageSuitability(state.ageMin, state.ageMax, state.ageSuitabilityDisplay); // ``` // ### Function var ageSuitabilityMock = function () { return { ageMin: '', ageMax: '', ageSuitabilityDisplay: '', divider: 12, greaterThan: 18, suffix: { months: '', years: '' } }; }; var strToNum = function (str) { return Number(str); }; var divide = function (number, divider) { return (number % divider ? strToNum((number / divider).toFixed(1)) : number / divider); }; var ageDataMock = function () { return { ageMin: '10', ageMax: '15', ageSuitabilityDisplay: '10-15' }; }; var getAge = function (ageData) { if ( ageData === void 0 ) ageData = ageDataMock(); return ({ ageMin: ageData.ageMin, ageMax: ageData.ageMax, ageSuitabilityDisplay: ageData.ageSuitabilityDisplay, divider: 12, greaterThan: 18, suffix: { months: 'months', years: 'years' } }); }; var ageSuitabilityCalculator = function (age) { if ( age === void 0 ) age = ageSuitabilityMock(); var ageMax = strToNum(age.ageMax); var ageMin = strToNum(age.ageMin); var result = { ageMin: ageMax > age.greaterThan || ageMin > age.greaterThan ? divide(ageMin, age.divider) : ageMin, ageMax: ageMax > age.greaterThan ? divide(ageMax, age.divider) : ageMax, suffix: ageMax > age.greaterThan ? age.suffix.years : age.suffix.months }; // If range, show min-max, otherwise show min+ var resultText = result.ageMax ? ((result.ageMin) + "-" + (result.ageMax) + " " + (result.suffix)) : ((result.ageMin) + "+"); var formattedText = resultText !== 'NaN+' ? resultText : ''; return age.ageSuitabilityDisplay ? age.ageSuitabilityDisplay : formattedText; }; var ageSuitability = function (ageData) { return ageSuitabilityCalculator(getAge(ageData)); }; var METHODS = ['Day', 'Date', 'FullYear', 'Hours', 'Minutes', 'Month', 'Seconds']; var DAY = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']; var MONTH = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ]; var convert = function (f, k) { return (f[k] > 8 ? f[k] + 1 : ("0" + (f[k] + 1))); }; var convertTime = function (f, k) { return (f[k] > 9 ? ("" + (f[k])) : ("0" + (f[k]))); }; /** * * Creates a date object of type FriendlyDate from a date object * export type FriendlyDate = { * dayLong: string, * dayShort: string, * day: string, * monthLong: string, * monthShort: string, * month: string, * shortYear: string, * json: string, * date: number, * fullyear: number, * hours: number, * minutes: number, * month: number, * seconds: number * }; * * @example sq.friendlyDate(new Date()) * @param date */ var friendlyDate = function (date) { var final = { json: date.toJSON() }; METHODS.forEach(function (item) { final[item.toLowerCase()] = date['get' + item](); }); return Object.assign(final, { dayLong: DAY[final['day']], dayShort: DAY[final['day']].substr(0, 3), day: ("" + (final.date)), monthLong: MONTH[final['month']], monthShort: MONTH[final['month']].substr(0, 3), month: convert(final, 'month'), yearShort: ("" + (final.fullyear)).substr(2, 2), fullYear: ("" + (final.fullyear)), friendlyHours: convertTime(final, 'hours'), friendlyMinutes: convertTime(final, 'minutes') }); }; /** * Creates a date object of type FriendlyDate from a date object in string format * export type FriendlyDate = { * dayLong: string, * dayShort: string, * day: string, * monthLong: string, * monthShort: string, * month: string, * shortYear: string, * json: string, * date: number, * fullyear: number, * hours: number, * minutes: number, * month: number, * seconds: number * }; * @example * var dateVar = sq.friendlyDateFromString((new Date()).toString()) * @param date * @returns {FriendlyDate} */ var friendlyDateFromString = function (date) { return friendlyDate(new Date(Date.parse(date))); }; // this is a closure dummy var ReactRender = function (getElement) { return function (Component, props) { // how does this even work? var domContainerNode = getElement(); ///console.log(domContainerNode); var reactElement = React.createElement(Component, props); ReactDOM.render(reactElement, domContainerNode); //ReactDOM.unmountComponentAtNode(domContainerNode) }; }; var mount = function (element, Component, props) { var reactElement = React.createElement(Component, props); ReactDOM.render(reactElement, element); }; var mountNewRoot = function (element, Component, props, elType, classList) { if ( elType === void 0 ) elType = 'span'; if ( classList === void 0 ) classList = ['react-root']; var wrapper = document.createElement(elType); wrapper.id = props.state.id; try { wrapper.classList = classList; } catch(e) { wrapper.className = classList.join(' '); } // insert wrapper before el in the DOM tree element.parentNode.insertBefore(wrapper, element); element.parentNode.removeChild(element); mount(wrapper, Component, props); }; /** * * AppInstance * * Can be used to review data. Call render, and update state via actions. * @example * let appInstance = app({...}); * // call update action * appInstance = appInstance.emit('update'); * // call updateByValue action * appInstance = appInstance.emit('updateByValue', 3); * // call render * const renderResult = appInstance.render(Component, {state: appInstance.state, actions}) * @param {function} emit returns AppInstance * @param {object} state the current state * @param {function} render the passed in render function. This available for testing purposes. * @param {undefined|object} lastAction the result of the last action * @constructor */ var cleanForReact = function (str) { return str.replace(/&/gi, '&'); }; // TODO: add idAlias to all // TODO: add action.emit to all var app = function (obj) { var state = JSON.parse(cleanForReact(JSON.stringify(obj.state))); var views = obj.views; var tmp = obj._tmp || {}; obj.actions.beforeFirstRun = obj.actions.beforeFirstRun ? obj.actions.beforeFirstRun : function (state, actions) { return ({}); }; var actions = {}; var actionFn = function (action) { var params = [], len = arguments.length - 1; while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ]; if (!actions[action]) { console.error(("action '" + action + "' does not exist in your actions for app with id: '" + (obj.state.id) + "'")); } return out(actions[action].apply(actions, params)); }; function out(lastAction) { if ( lastAction === void 0 ) lastAction = null; return { emit: actionFn, state: copy(state), render: obj.render, lastAction: lastAction, views: obj.views }; } Object.keys(obj.actions).forEach(function (action) { var actionWrapper = function () { var ref; var params = [], len = arguments.length; while ( len-- ) params[ len ] = arguments[ len ]; var nstate = copy(state); nstate._tmp = tmp; var result = (ref = obj.actions)[action].apply(ref, [ nstate, actions ].concat( params )); if (result) { state = copy(Object.assign(state, result)); state._tmp = result._tmp ? Object.assign({}, tmp, result._tmp) : tmp; obj.render(views[state.view], { state: Object.assign({}, views, state), actions: actions }); } return result; }; actionWrapper.refName = action; actionWrapper.ref = obj.actions[action]; actions[action] = actionWrapper; }); actionFn('beforeFirstRun'); delete actions['beforeFirstRun']; return out(); }; function StateResource(stype, resource, mockResponse, reuse) { if ( reuse === void 0 ) reuse = true; this.type = stype; this.resource = resource; this.mockResponse = mockResponse; this.reuse = reuse; } var stateJson = function (resource, mockResponse) { return new StateResource('json', resource, mockResponse); }; var pass = function (data) { return data; }; /** * When there is a value of item function pass the value to fn * @param item * @param fn */ var ready = function (item, fn, wait) { if ( wait === void 0 ) wait = 4; return (item() ? fn(item()) : setTimeout(function () { return ready(item, fn); }, wait)); }; function appRequest(sq, name, stateResource, thenHandler, debug$$1) { fetch(stateResource.resource, { credentials: 'include' }) .then(function (response) { if (stateResource.mockResponse) { response = { status: stateResource.mockResponse.status, json: function () { return Promise.resolve(JSON.parse(JSON.stringify(stateResource.mockResponse.body))); } }; console.log(response); } if (response.status === 200) { if (!!location && location.search.toString().match(/dump/)) { console.log(("Response for " + name + ":")); console.log(response); } var jsonResult; try { jsonResult = response.json(); } catch (e) { return Promise.reject(e); } return jsonResult.then(function (res) { if (typeof res.info === 'object') { return Promise.reject(res); } return res; }); } else if (response.status === 304) { return Promise.reject({ aliasId: 'authStatus', action: 'authFail' }); } else { return Promise.reject({}); } }) .then(thenHandler(stateResource.resource)) .catch(function (err) { if ( err === void 0 ) err = {}; console.log('appRequest error: ', err); //tryRemoteAction(sq, err.aliasId || 'globalModalAlias', err.action || 'globalModalError'); }); } var appInstance = function ( name, domElement, viewsActionsState, stateResources, runRequest, sq, debug$$1 ) { if ( stateResources === void 0 ) stateResources = null; if ( runRequest === void 0 ) runRequest = appRequest; if ( sq === void 0 ) sq = window.sq; if ( debug$$1 === void 0 ) debug$$1 = debug$$1; //TODO: Refactor all this stuff away to lib/sq.js if (!sq) { sq = window.sq; } if (viewsActionsState.state.idAlias) { sq.aliases[viewsActionsState.state.idAlias] = name; } sq.componentViews = Object.assign({}, sq.componentViews, viewsActionsState.views); if (!sq.aliases) { sq.aliases = {}; } if (viewsActionsState.state.idAlias) { sq.aliases[viewsActionsState.state.idAlias] = name; } var newApp = function () { sq[name] = app(Object.assign({}, viewsActionsState, {render: ReactRender(function () { return domElement; })})); }; var mainThenHandler = function (response) { viewsActionsState.actions.responseHandler = viewsActionsState.actions.responseHandler || pass; if (!sq[name]) { newApp(); } sq[name].emit('responseHandler', response); }; var thenHandler = function (key) { return function (response) { sq[key] = response; mainThenHandler(response); }; }; if (domElement && !sq[name]) { // Use this stateResource Type so if multiple apps need the same resource we only call that once if (stateResources) { if (viewsActionsState.state.view === 'Loading') { sq[name] = app(Object.assign({}, viewsActionsState, {render: ReactRender(function () { return domElement; })})); } stateResources = [].concat(stateResources); stateResources.forEach(function (stateResource) { if (stateResource.type === 'json') { if ( !stateResource.reuse || (stateResource.reuse && typeof sq[stateResource.resource] === 'undefined') ) { sq[stateResource.resource] = false; runRequest(sq, name, stateResource, thenHandler, debug$$1); } else { ready(function () { return sq[stateResource.resource]; }, mainThenHandler); } } }); } else { newApp(); } } else { sq[name] = null; } }; /** * * @param state * @param actions * @param subscriber */ var subscribeHandler = function (state, actions, subscriber) { var final = { _subscribers: state._subscribers || {} }; if (typeof final._subscribers[subscriber.event] === 'undefined') { final._subscribers[subscriber.event] = []; } if ( !final._subscribers[subscriber.event].find( function (item) { return item.action === subscriber.action && item.id === subscriber.id; } ) ) { final._subscribers[subscriber.event] = final._subscribers[subscriber.event].concat(subscriber); } return final; }; var getSubscribers = function (state, event) { return state._subscribers && state._subscribers[event] ? state._subscribers[event] : []; }; var tryId = function (id) { if (typeof window.sq[id] === 'undefined') { throw ("'" + id + "' does not exist in 'window.sq[id]'. Its likely you have a typo in your id or this app instance was not successfully instantiated after 10 seconds of the page load."); } return window.sq[id]; }; var __publish = function (eventsObject) { return function (state, actions, data) { if (!state) { return eventsObject; } if (!data.event) { console.error( ("You have not specified an event for the publish action using data\n" + (JSON.stringify(data, null, 2))) ); console.trace(); } if (data.after) { var result = eventsObject[data.event](state, actions, data); getSubscribers(state, data.event).forEach(function (subscriber) { tryId(subscriber.id).emit(subscriber.action, { data: data, result: result }); }); return result; } else if (data.before) { getSubscribers(state, data.event).forEach(function (subscriber) { tryId(subscriber.id).emit(subscriber.action, { data: data }); }); return eventsObject[data.event](state, actions, data); } else { return eventsObject[data.event](state, actions, data); } }; }; var allSubscribers = function (state, event, data) { return getSubscribers(state, event).forEach(function (subscriber) { tryId(subscriber.id).emit(subscriber.action, data); }); }; var subscribe = function (id, subscriber) { setTimeout(function () { tryId(id); }, 10000); window.sq.ready(function () { return window.sq[id]; }, function (app) { return app.emit('subscribe', subscriber); }, 50); }; // Builds the event object to be merged into the actions object var events = function (eventsObject) { return ({ publish: __publish(eventsObject), subscribe: subscribeHandler }); }; var MINIMUM_TWO_PARAMETERS = "actions.emit expects a minimum of two parameters. \n1. the id or alias of the app dom element. \n2. the action of the dom element"; var missingElement = function (first) { return (first + " does not exist as an element ID in the dom or an alias.\nIts preferable to use the app event system to avoid these issues.\n"); }; var emit = function (state, actions) { var params = [], len = arguments.length - 2; while ( len-- > 0 ) params[ len ] = arguments[ len + 2 ]; if (!params.length > 1) { console.error(MINIMUM_TWO_PARAMETERS); } var first = params.shift(); var app = actions[first] || window.sq[first] || window.sq[window.sq.aliases[first]]; if (!app) { console.error(missingElement(first)); } console.log(("Calling action '" + (params[0]) + "' on app '" + first + "'")); app.emit.apply(app, params); }; var addFunctionId = function (fn, id) { fn.functionId = id; return fn; }; var addWindowAction = function (state, actions, event, actionName, fn) { if (actions[actionName] && actions[actionName].functionId !== fn.functionId) { throw ("'" + actionName + "' clashes with another name in actions"); } var win = actions.window || window; if (!actions[actionName]) { actions[actionName] = fn; } win.addEventListener(event, actions[actionName]); }; var removeWindowAction = function (state, actions, event, actionName) { var win = actions.window || window; win.removeEventListener(event, actions[actionName]); }; var addDomAction = function (state, actions, event, actionName, fn) { if (actions[actionName] && actions[actionName].functionId && actions[actionName].functionId !== fn.functionId) { throw ("'" + actionName + "' clashes with another name in actions"); } // console.log(actions); var dom = actions.document || document; if (!actions[actionName]) { actions[actionName] = fn; // console.log(actions[actionName]); // console.log(`Adding dom action '${actionName}'.`) } else { // console.log(`Dom action '${actionName}' already added.`) } dom.addEventListener(event, actions[actionName]); }; var removeDomAction = function (state, actions, event, actionName) { var dom = actions.document || document; dom.removeEventListener(event, actions[actionName]); }; var mergeEvents = function (actions) { var initEventsObject = {}; if (actions.publish) { initEventsObject = actions.publish(); } return events(Object.assign({}, initEventsObject)); }; var baseActions = function (actions) { return (Object.assign({}, {emit: emit, addDomAction: addDomAction, removeDomAction: removeDomAction, addWindowAction: addWindowAction, removeWindowAction: removeWindowAction}, actions, mergeEvents(actions))); }; exports = { state: {}, components: {}, componentViews: {}, aliases: {}, __replaceParams: __replaceParams, addFunctionId: addFunctionId, ageSuitability: ageSuitability, allSubscribers: allSubscribers, app: app, appInstance: appInstance, arrayFromSet: arrayFromSet, baseActions: baseActions, capitalize: capitalize, clean: clean, cleanString: cleanString, cleanStringQuotes: cleanStringQuotes, compose: compose, convertMatrixBase64: convertMatrixBase64, copy: copy, createMarkup: createMarkup, debug: debug, events: events, filterByKeys: filterByKeys, flatten: flatten, friendlyDate: friendlyDate, friendlyDateFromString: friendlyDateFromString, getUrlParameter: getUrlParameter, highlightWords: highlightWords, htmlDecode: htmlDecode, immutable: immutable, isItems: isItems, isLocalhost: isLocalhost, jsonDecode: jsonDecode, jsonEncode: jsonEncode, keyValuesToObject: keyValuesToObject, keyValuesToQuery: keyValuesToQuery, maybeBase64Decode: maybeBase64Decode, b64EncodeUnicode: b64EncodeUnicode, b64DecodeUnicode: b64DecodeUnicode, mount: mount, mountNewRoot: mountNewRoot, objToQueryString: objToQueryString, parseQuery: parseQuery, pipe: pipe, reactKey: reactKey, ready: ready, slugify: slugify, stateJson: stateJson, subscribe: subscribe }; return exports; }({})); </script> <script> (function(sq) { sq.state.site = {"gitFilesPath":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/m%403x.png","logoURL":"https://raisingchildren.net.au/__data/assets/file/0012/23340/logo.svg","legalName":"<p>© 2006-2024 Raising Children Network (Australia) Limited. All rights reserved.</p><p>Warning: This website and the information it contains is not intended as a substitute for professional consultation with a qualified practitioner.</p>","siteName":"Raising Children Network","homeURL":"https://raisingchildren.net.au","menu":[{"asset_assetid":"24519","asset_name":"Pregnancy and birth","asset_short_name":"Pregnancy","asset_url_path":"/pregnancy"},{"asset_assetid":"24531","asset_name":"Newborns (0-3 months)","asset_short_name":"Newborns","asset_url_path":"/newborns"},{"asset_assetid":"24515","asset_name":"Babies (3-12 months)","asset_short_name":"Babies","asset_url_path":"/babies"},{"asset_assetid":"24545","asset_name":"Toddlers (1-3 years)","asset_short_name":"Toddlers","asset_url_path":"/toddlers"},{"asset_assetid":"24553","asset_name":"Preschoolers (3-5 years)","asset_short_name":"Preschoolers","asset_url_path":"/preschoolers"},{"asset_assetid":"24557","asset_name":"School age (5-8 years)","asset_short_name":"School age","asset_url_path":"/school-age"},{"asset_assetid":"24527","asset_name":"Pre-teens (9-11 years)","asset_short_name":"Pre-teens","asset_url_path":"/pre-teens"},{"asset_assetid":"24507","asset_name":"Teens (12-18 years)","asset_short_name":"Teens","asset_url_path":"/teens"},{"asset_assetid":"24535","asset_name":"Grown-ups","asset_short_name":"Grown-ups","asset_url_path":"/grown-ups"},{"asset_assetid":"24511","asset_name":"Autism","asset_short_name":"Autism","asset_url_path":"/autism"},{"asset_assetid":"24549","asset_name":"Children with disability","asset_short_name":"Disability","asset_url_path":"/disability"},{"asset_assetid":"23224","asset_name":"About us","asset_short_name":"About us","asset_url_path":"/about-us"},{"asset_assetid":"23232","asset_name":"For professionals","asset_short_name":"For professionals","asset_url_path":"/for-professionals"},{"asset_assetid":"23240","asset_name":"Guides and tools","asset_short_name":"Guides & tools","asset_url_path":"/guides"}],"footerFlags":[{"asset_url":"https://raisingchildren.net.au/__data/assets/image/0028/98344/Aboriginal-flag-50px-height.jpg","asset_attribute_alt":"Aboriginal flag (c) WAM Clothing"},{"asset_url":"https://raisingchildren.net.au/__data/assets/image/0029/98345/TSI-flag-50px-height.jpg","asset_attribute_alt":"Torres Strait Islands flag"}],"siteAcknowledgement":"At raisingchildren.net.au we acknowledge the Traditional Custodians of the land on which we live, gather and work. We recognise their continuing connection to land, water and community. We pay respect to Elders past and present.","siteLegalName":"<p>© 2006-2024 Raising Children Network (Australia) Limited. All rights reserved.</p><p>Warning: This website and the information it contains is not intended as a substitute for professional consultation with a qualified practitioner.</p>","subscribe":{"formUrl":"https://raisingchildren.net.au/subscribe-to-our-emails","formContentId":"49761","subscribePage":"https://raisingchildren.net.au/subscribe","fields":"eyJhc3NldGlkIjoiNDk3NjEiLCJ0eXBlX2NvZGUiOiJmb3JtX2VtYWlsIiwidmVyc2lvbiI6IjAuMS4yNDgiLCJuYW1lIjoiRm9ybSBDb250ZW50cyIsInNob3J0X25hbWUiOiJGb3JtIENvbnRlbnRzIiwiZXh0ZXJuYWxfaWQiOmZhbHNlLCJzdGF0dXMiOiIxNiIsImxhbmd1YWdlcyI6ImVuIiwiY2hhcnNldCI6InV0Zi04IiwiY3JlYXRlZCI6IjIwMTgtMDktMDYgMTE6MjE6MjYiLCJjcmVhdGVkX3VzZXJpZCI6IjgwIiwidXBkYXRlZCI6IjIwMjItMDMtMTggMTQ6MjE6MDAiLCJ1cGRhdGVkX3VzZXJpZCI6IjEwODA1NCIsInB1Ymxpc2hlZCI6IjIwMTgtMDktMTEgMTA6MzU6NTIiLCJwdWJsaXNoZWRfdXNlcmlkIjoiMTMiLCJzdGF0dXNfY2hhbmdlZCI6IjIwMTgtMDktMTEgMTA6MzU6NTIiLCJzdGF0dXNfY2hhbmdlZF91c2VyaWQiOiIxMyIsInRodW1ibmFpbCI6IiIsImF0dHJpYnV0ZXMiOnsic3VibWl0X2J1dHRvbiI6eyJhdHRyaWQiOiIxNzEyIiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlN1Ym1pdCIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlc2V0X2J1dHRvbiI6eyJhdHRyaWQiOiIxNzQ5IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlJlc2V0IiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwicXVlc3Rpb25fY29sX3dpZHRoIjp7ImF0dHJpZCI6IjE3NDQiLCJ0eXBlIjoiaHRtbF93aWR0aCIsInZhbHVlIjoiNDAlIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImFuc3dlcl9jb2xfd2lkdGgiOnsiYXR0cmlkIjoiMTY5NCIsInR5cGUiOiJodG1sX3dpZHRoIiwidmFsdWUiOiI2MCUiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiZm9ybV93aWR0aCI6eyJhdHRyaWQiOiIxNzY0IiwidHlwZSI6Imh0bWxfd2lkdGgiLCJ2YWx1ZSI6IjEwMCUiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic29ydF9vcmRlciI6eyJhdHRyaWQiOiIxNzMzIiwidHlwZSI6InNlcmlhbGlzZSIsInZhbHVlIjp7IjAiOiI0OTc2MTpxMSIsIjEiOiI0OTc2MTpxMiIsIjIiOiI0OTc2MTpxMyIsIjMiOiI0OTc2MTpxNCIsIjQiOiI0OTc2MTpxNSIsIjUiOiI0OTc2MTpxNiIsIjYiOiI0OTc2MTpxNyIsIjciOiI0OTc2MTpxOCIsIjgiOiI0OTc2MTpxOSIsIjEwIjoiNDk3NjE6cTExIiwiMTEiOiI0OTc2MTpxMTIiLCIxMiI6IjQ5NzYxOnExMyIsIjEzIjoiNDk3NjE6cTE0IiwiMTQiOiI0OTc2MTpxMTUiLCIxNSI6IjQ5NzYxOnExNiIsIjE2IjoiNDk3NjE6cTE3IiwiMTciOiI0OTc2MTpxMTgiLCIxOCI6IjQ5NzYxOnExOSIsIjE5IjoiNDk3NjE6cTIwIn0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfYm9keWNvcHlfdW5hdHRhY2hlZCI6eyJhdHRyaWQiOiIxNzIxIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfY2xpZW50X3NpZGUiOnsiYXR0cmlkIjoiMTcyNiIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwibm90ZV9zaXplIjp7ImF0dHJpZCI6IjE2ODMiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiODAlIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sIm11bHRpX3BhZ2UiOnsiYXR0cmlkIjoiMTcxNCIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwibmV4dF9idXR0b24iOnsiYXR0cmlkIjoiMTY4NSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJOZXh0IFBhZ2UiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwcmV2aW91c19idXR0b24iOnsiYXR0cmlkIjoiMTcwMyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJQcmV2aW91cyBQYWdlIiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwic2F2ZV9idXR0b24iOnsiYXR0cmlkIjoiMTcwMiIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzYXZlX2NvbmZpcm1hdGlvbl9tZXNzYWdlIjp7ImF0dHJpZCI6IjE3MDAiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiU2F2ZSIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNvbmZpcm1hdGlvbl9wYWdlX25hbWUiOnsiYXR0cmlkIjoiMTcwOSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJDb25maXJtYXRpb24iLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwYWdlX2xpc3RfZm9ybWF0Ijp7ImF0dHJpZCI6IjE3NTciLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiJXBhZ2VfbnVtYmVyJSIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdWJtaXNzaW9uX3dhcm5pbmdfdGltZSI6eyJhdHRyaWQiOiIxNzIwIiwidHlwZSI6ImR1cmF0aW9uIiwidmFsdWUiOjAsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ3YXJuaW5nX2VtYWlsX2Zvcm1hdCI6eyJhdHRyaWQiOiIxNzczIiwidHlwZSI6ImVtYWlsX2Zvcm1hdCIsInZhbHVlIjp7InRvIjpbXSwidG9fYXNzZXRpZHMiOltdLCJmcm9tIjoiIiwicmVwbHlfdG8iOiIiLCJzdWJqZWN0IjoiIiwiaHRtbF9mb3JtYXQiOiIiLCJ0ZXh0X2Zvcm1hdCI6IiIsImluY19hdHRhY2htZW50cyI6W10sImF0dGFjaG1lbnRzIjpbXSwiYXNzZXRfdG9fc2VuZCI6IiIsImRlc2lnbl90b19hcHBseSI6IiIsImxheW91dF90b19hcHBseSI6IiJ9LCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwid2FybmluZ19lbWFpbF9mb3JtYXRfcHVibGljIjp7ImF0dHJpZCI6IjE2OTgiLCJ0eXBlIjoiZW1haWxfZm9ybWF0IiwidmFsdWUiOnsidG8iOltdLCJ0b19hc3NldGlkcyI6W10sImZyb20iOiIiLCJyZXBseV90byI6IiIsInN1YmplY3QiOiIiLCJodG1sX2Zvcm1hdCI6IiIsInRleHRfZm9ybWF0IjoiIiwiaW5jX2F0dGFjaG1lbnRzIjpbXSwiYXR0YWNobWVudHMiOltdLCJhc3NldF90b19zZW5kIjoiIiwiZGVzaWduX3RvX2FwcGx5IjoiIiwibGF5b3V0X3RvX2FwcGx5IjoiIn0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX3VzZV9jb2xvdXJzIjp7ImF0dHJpZCI6IjE3MzEiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfYmdjb2xvdXIiOnsiYXR0cmlkIjoiMTcwOCIsInR5cGUiOiJjb2xvdXIiLCJ2YWx1ZSI6IiNGRkZGRkYiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV90dGYiOnsiYXR0cmlkIjoiMTY4OCIsInR5cGUiOiJhc3NldGlkIiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9mb250X3NpemUiOnsiYXR0cmlkIjoiMTc2OCIsInR5cGUiOiJpbnQiLCJ2YWx1ZSI6IjIwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfbWluX2FuZ2xlIjp7ImF0dHJpZCI6IjE3MjMiLCJ0eXBlIjoiaW50IiwidmFsdWUiOiItMjAiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9tYXhfYW5nbGUiOnsiYXR0cmlkIjoiMTczNSIsInR5cGUiOiJpbnQiLCJ2YWx1ZSI6IjIwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfeF9zdGFydCI6eyJhdHRyaWQiOiIxNzE3IiwidHlwZSI6ImludCIsInZhbHVlIjoiMTAiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9taW5fZGlzdGFuY2UiOnsiYXR0cmlkIjoiMTc0MSIsInR5cGUiOiJpbnQiLCJ2YWx1ZSI6IjEwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfbWF4X2Rpc3RhbmNlIjp7ImF0dHJpZCI6IjE2OTMiLCJ0eXBlIjoiaW50IiwidmFsdWUiOiIyMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2luY2x1ZGVfbnVtYmVycyI6eyJhdHRyaWQiOiIxNzEwIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwcm92aWRlX2FjY2Vzc2libGVfY2FwdGNoYSI6eyJhdHRyaWQiOiIxNzY3IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2ludmFsaWRfZXJyb3JfbWVzc2FnZSI6eyJhdHRyaWQiOiIxNzY2IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlNlY3VyaXR5IEtleSBJbmNvcnJlY3QiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2Zvcm1faW52YWxpZF9lcnJvcl9tZXNzYWdlIjp7ImF0dHJpZCI6IjE3NTQiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiVmFsaWQgQ0FQVENIQSBpcyByZXF1aXJlZCwgYnV0IG5vbmUgaXMgZm91bmQgaW4gdGhpcyBmb3JtIHN1Ym1pc3Npb24iLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtb2xsb21fc3BhbV9zdWJtaXNzaW9uX3RleHQiOnsiYXR0cmlkIjoiMTc0NiIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJUaGlzIHN1Ym1pc3Npb24gbG9va3MgbGlrZSBhIHNwYW0uIENhbm5vdCBhY2NlcHQgdGhpcyBzdWJtaXNzaW9uLiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtb2xsb21fY2FwdGNoYV9pbmNvcnJlY3RfdGV4dCI6eyJhdHRyaWQiOiIxNzM3IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IkluY29ycmVjdCBzZWN1cml0eSBrZXkuIFBsZWFzZSB0cnkgYWdhaW4uIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sIm1vbGxvbV9jYXB0Y2hhX3JlZ2VuX2xpbmtfdGV4dCI6eyJhdHRyaWQiOiIxNjkxIiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlJlZ2VuZXJhdGUgc2VjdXJpdHkga2V5IiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9hY2Nlc3NpYmxlX2Zvcm1hdCI6eyJhdHRyaWQiOiIxNjg3IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZXF1aXJlZF9maWVsZF9tYXJrIjp7ImF0dHJpZCI6IjE3NDIiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiPGFiYnIgY2xhc3M9XCJzcS1mb3JtLXJlcXVpcmVkLWZpZWxkXCIgdGl0bGU9XCJyZXF1aXJlZFwiPio8XC9hYmJyPiIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlcXVpcmVkX2ZpZWxkX25vdGUiOnsiYXR0cmlkIjoiMTc1MyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGFuIGFzdGVyaXNrICg8YWJiciBjbGFzcz1cInNxLWZvcm0tcmVxdWlyZWQtZmllbGRcIiB0aXRsZT1cInJlcXVpcmVkXCI+KjxcL2FiYnI+KS4iLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwdWJsaWNfYXV0aF9lcnJvcl9tZXNzYWdlIjp7ImF0dHJpZCI6IjE3MjIiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInB1YmxpY19lbWFpbF9ub3RpZmljYXRpb25fZm9ybWF0Ijp7ImF0dHJpZCI6IjE3NzUiLCJ0eXBlIjoiZW1haWxfZm9ybWF0IiwidmFsdWUiOnsiaHRtbF9mb3JtYXQiOiI8cD48XC9wPiIsInRleHRfZm9ybWF0IjoiIiwidG8iOltdLCJ0b19hc3NldGlkcyI6W10sImZyb20iOiIiLCJyZXBseV90byI6IiIsInN1YmplY3QiOiIiLCJpbmNfYXR0YWNobWVudHMiOmZhbHNlLCJhc3NldF90b19zZW5kIjoiMCIsImRlc2lnbl90b19hcHBseSI6IjAiLCJsYXlvdXRfdG9fYXBwbHkiOiIwIiwic2VuZF9tYWlsX3RvX3R5cGUiOjAsImF0dGFjaG1lbnRzIjpbXX0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZWNhcHRjaGFfdGhlbWUiOnsiYXR0cmlkIjoiMTczMiIsInR5cGUiOiJzZWxlY3Rpb24iLCJ2YWx1ZSI6InJlZCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZWNhcHRjaGFfZXJyb3JfbWVzc2FnZSI6eyJhdHRyaWQiOiIxNzE1IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfaGNhcHRjaGEiOnsiYXR0cmlkIjoiNDk1MiIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiaGNhcHRjaGFfdGhlbWUiOnsiYXR0cmlkIjoiNDk1MCIsInR5cGUiOiJzZWxlY3Rpb24iLCJ2YWx1ZSI6ImxpZ2h0IiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImhjYXB0Y2hhX3NpemUiOnsiYXR0cmlkIjoiNDk1MSIsInR5cGUiOiJzZWxlY3Rpb24iLCJ2YWx1ZSI6Im5vcm1hbCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJoY2FwdGNoYV9lcnJvcl9tZXNzYWdlIjp7ImF0dHJpZCI6IjQ5NTMiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImhvbmV5cG90X25hbWUiOnsiYXR0cmlkIjoiMTcyOCIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiaG9uZXlwb3RfaWQiOnsiYXR0cmlkIjoiMTc0NSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiaG9uZXlwb3RfY2xhc3MiOnsiYXR0cmlkIjoiMTcwNSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiaG9uZXlwb3RfZXJyb3JfbWVzc2FnZSI6eyJhdHRyaWQiOiIxNzM4IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZWNvcmRfaXBfYWRkcmVzcyI6eyJhdHRyaWQiOiI0ODM4IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY2VpcHRfZW1haWxzX2Zvcm1hdCI6eyJhdHRyaWQiOiIxNzc3IiwidHlwZSI6ImVtYWlsX2Zvcm1hdCIsInZhbHVlIjp7InRvIjpbXSwidG9fYXNzZXRpZHMiOltdLCJmcm9tIjoiIiwicmVwbHlfdG8iOiIiLCJzdWJqZWN0IjoiIiwiaHRtbF9mb3JtYXQiOiIiLCJ0ZXh0X2Zvcm1hdCI6IiIsImluY19hdHRhY2htZW50cyI6W10sImF0dGFjaG1lbnRzIjpbXSwiYXNzZXRfdG9fc2VuZCI6IiIsImRlc2lnbl90b19hcHBseSI6IiIsImxheW91dF90b19hcHBseSI6IiJ9LCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVjZWlwdF9maWVsZCI6eyJhdHRyaWQiOiIxNzc4IiwidHlwZSI6ImFzc2V0aWQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdGFmX2Zvcm1hdCI6eyJhdHRyaWQiOiIxNzgxIiwidHlwZSI6ImVtYWlsX2Zvcm1hdCIsInZhbHVlIjp7InRvIjpbXSwidG9fYXNzZXRpZHMiOltdLCJmcm9tIjoiIiwicmVwbHlfdG8iOiIiLCJzdWJqZWN0IjoiIiwiaHRtbF9mb3JtYXQiOiIiLCJ0ZXh0X2Zvcm1hdCI6IiIsImluY19hdHRhY2htZW50cyI6W10sImF0dGFjaG1lbnRzIjpbXSwiYXNzZXRfdG9fc2VuZCI6IiIsImRlc2lnbl90b19hcHBseSI6IiIsImxheW91dF90b19hcHBseSI6IiJ9LCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic2VsZWN0aXZlX2VtYWlscyI6eyJhdHRyaWQiOiIxNzgyIiwidHlwZSI6InNlcmlhbGlzZSIsInZhbHVlIjpbXSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImFjdGlvbnMiOnsiYXR0cmlkIjoiMTc4MyIsInR5cGUiOiJzZXJpYWxpc2UiLCJ2YWx1ZSI6W3sibmFtZSI6Ik1haWxDaGltcCBTdWJtaXNzaW9uIiwidHlwZV9jb2RlIjoiZm9ybV9hY3Rpb25fY2FsbF9yZXN0X3Jlc291cmNlIiwic2V0dGluZ3MiOnsiaHR0cF9yZXF1ZXN0IjoiYToyMzp7czo2OlwibWV0aG9kXCI7czozOlwiUFVUXCI7czoxNDpcImVuYWJsZV9odHRwXzEwXCI7YjowO3M6NDpcInVybHNcIjthOjE6e2k6MDtzOjgzOlwiaHR0cHM6XC9cL3VzMTEuYXBpLm1haWxjaGltcC5jb21cLzMuMFwvbGlzdHNcLzI5NDViOTM3N2RcL21lbWJlcnNcLyVyZXNwb25zZV80OTc2MV9xM15tZDUlXCI7fXM6NzpcInRpbWVvdXRcIjtzOjI6XCIxMFwiO3M6MTU6XCJmb2xsb3dfcmVkaXJlY3RcIjtzOjE6XCIxXCI7czoxODpcImRpc2FibGVfc3NsX3ZlcmlmeVwiO3M6MTpcIjFcIjtzOjE4OlwiZW5hYmxlX2NvbXByZXNzaW9uXCI7czoxOlwiMVwiO3M6ODpcInNzbF9jZXJ0XCI7czowOlwiXCI7czo3Olwic3NsX2tleVwiO3M6MDpcIlwiO3M6NzpcImNhX2ZpbGVcIjtzOjA6XCJcIjtzOjEzOlwiY2FjaGVfb3B0aW9uc1wiO3M6NTpcIk5FVkVSXCI7czoxOTpcImNhY2hlX3Bvc3RfcmVxdWVzdHNcIjtiOjA7czoyMDpcImRlZmF1bHRfY2FjaGVfZXhwaXJ5XCI7czoyOlwiNjBcIjtzOjE5OlwiYXV0aGVudGljYXRpb25fdHlwZVwiO3M6MTA6XCJIVFRQX0Jhc2ljXCI7czoxMjpcInJlcXVlc3RfYm9keVwiO3M6MTMzMjpcIntcImVtYWlsX2FkZHJlc3NcIjpcIiVyZXNwb25zZV80OTc2MV9xM15qc29uX2VuY29kZSVcIixcImVtYWlsX3R5cGVcIjpcImh0bWxcIixcInN0YXR1c1wiOlwicGVuZGluZ1wiLFwibWVyZ2VfZmllbGRzXCI6IHslcmVzcG9uc2VfNDk3NjFfcTVebm90ZW1wdHk6XCJDSElMRE5BTUUxXCJcXDpcIntyZXNwb25zZV80OTc2MV9xMTFeanNvbl9lbmNvZGV9XCIsJSVyZXNwb25zZV80OTc2MV9xNV5ub3RlbXB0eTpcIkNISUxERE9CMVwiXFw6IFwie3Jlc3BvbnNlXzQ5NzYxX3ExMl5yZXBsYWNlOi0tOl5qc29uX2VuY29kZX1cIiwlJXJlc3BvbnNlXzQ5NzYxX3E1Xm5vdGVtcHR5OlwiQ0hJTEROQU1FMlwiXFw6IFwie3Jlc3BvbnNlXzQ5NzYxX3ExM15qc29uX2VuY29kZX1cIiwlJXJlc3BvbnNlXzQ5NzYxX3E1Xm5vdGVtcHR5OlwiQ0hJTERET0IyXCJcXDogXCJ7cmVzcG9uc2VfNDk3NjFfcTE0XnJlcGxhY2U6LS06Xmpzb25fZW5jb2RlfVwiLCUlcmVzcG9uc2VfNDk3NjFfcTVebm90ZW1wdHk6XCJDSElMRE5BTUUzXCJcXDogXCJ7cmVzcG9uc2VfNDk3NjFfcTE1Xmpzb25fZW5jb2RlfVwiLCUlcmVzcG9uc2VfNDk3NjFfcTVebm90ZW1wdHk6XCJDSElMRERPQjNcIlxcOiBcIntyZXNwb25zZV80OTc2MV9xMTZecmVwbGFjZTotLTpeanNvbl9lbmNvZGV9XCIsJSVyZXNwb25zZV80OTc2MV9xNV5ub3RlbXB0eTpcIkNISUxETkFNRTRcIlxcOiBcIntyZXNwb25zZV80OTc2MV9xMTdeanNvbl9lbmNvZGV9XCIsJSVyZXNwb25zZV80OTc2MV9xNV5ub3RlbXB0eTpcIkNISUxERE9CNFwiXFw6IFwie3Jlc3BvbnNlXzQ5NzYxX3ExOF5yZXBsYWNlOi0tOl5qc29uX2VuY29kZX1cIiwlJXJlc3BvbnNlXzQ5NzYxX3E2Xm5vdGVtcHR5OlwiQkFCWURVRVwiXFw6XCJ7cmVzcG9uc2VfNDk3NjFfcTE5XnJlcGxhY2U6LS06Xmpzb25fZW5jb2RlfVwiLCVcIkZOQU1FXCI6IFwiJXJlc3BvbnNlXzQ5NzYxX3ExXmpzb25fZW5jb2RlJVwiLFwiTE5BTUVcIjogXCIlcmVzcG9uc2VfNDk3NjFfcTJeanNvbl9lbmNvZGUlXCJ9LFwiaW50ZXJlc3RzXCI6IHslcmVzcG9uc2VfNDk3NjFfcTVebm90ZW1wdHk6XCIwN2FiODcxMzQ2XCJcXDp7cmVzcG9uc2VfNDk3NjFfcTV9LCUlcmVzcG9uc2VfNDk3NjFfcTdebm90ZW1wdHk6XCJjZjI2YzZiZTBmXCJcXDp7cmVzcG9uc2VfNDk3NjFfcTd9LCUlcmVzcG9uc2VfNDk3NjFfcThebm90ZW1wdHk6XCI5ZmUzMzA5OTJjXCJcXDp7cmVzcG9uc2VfNDk3NjFfcTh9LCUlcmVzcG9uc2VfNDk3NjFfcTZebm90ZW1wdHk6XCI1ZDcxMTg1Yjg4XCJcXDp7cmVzcG9uc2VfNDk3NjFfcTZ9LCUlcmVzcG9uc2VfNDk3NjFfcTlebm90ZW1wdHk6XCJjZTUxZDY1YWU0XCJcXDp7cmVzcG9uc2VfNDk3NjFfcTl9LCVcIjBkYzYxYmMwMmVcIjogJXJlc3BvbnNlXzQ5NzYxX3E0XmVtcHR5OmZhbHNlJX19XCI7czoxNTpcInJlcXVlc3RfaGVhZGVyc1wiO047czoxNTpcImNvbnZlcnRfdG9fdXRmOFwiO3M6MTpcIjFcIjtzOjE1OlwiYXBwZW5kX2dldF92YXJzXCI7YjowO3M6MTc6XCJmb3J3YXJkX3VzZXJfa2V5c1wiO3M6MTpcIjFcIjtzOjE3OlwiZG9jdW1lbnRfZW5jb2RpbmdcIjtzOjQ6XCJBdXRvXCI7czoxNzpcImh0dHBfYXV0aF9vcHRpb25zXCI7YToyOntzOjg6XCJ1c2VybmFtZVwiO3M6MTpcImFcIjtzOjg6XCJwYXNzd29yZFwiO3M6NTpcIioqKioqXCI7fXM6MTE6XCJvYXV0aF9hc3NldFwiO3M6MDpcIlwiO3M6MTI6XCJvYXV0aDJfdG9rZW5cIjtzOjA6XCJcIjt9IiwidmFsaWRhdGlvbl9lbmFibGVkIjoiMSIsInZhbGlkYXRpb25fc2NvcGUiOjAsInZhbGlkYXRpb25fdGFyZ2V0IjoiMiIsInZhbGlkYXRpb25fb3BlcmF0b3IiOiIwIiwidmFsaWRhdGlvbl92YWx1ZSI6Il5cXHMrJCIsInZhbGlkYXRpb25fZXJyb3JfdGV4dCI6IiVnbG9iYWxzX3Nlc3Npb25fbWFpbGNoaW1wX2Vycm9yJSIsInZhbGlkYXRpb25fa3dfcmVwbGFjZW1lbnQiOiIlZ2xvYmFsc19zZXNzaW9uX21haWxjaGltcF9lcnJvciUiLCJqc19zZXNzaW9uX3ZhciI6Im1haWxjaGltcF9lcnJvciIsImpzX3JlcGxhY2Vfa2V5d29yZHMiOiIwIiwianNfZW5naW5lIjoidjgiLCJqc19jb2RlIjoiaWYgKF9SRVNULnJlc3BvbnNlLmluZm8uaHR0cF9jb2RlPjI5OSl7XHJcbiAgICByZXNwb25zZUJvZHk9SlNPTi5wYXJzZShfUkVTVC5yZXNwb25zZS5ib2R5KTtcclxuICAgIHByaW50KHJlc3BvbnNlQm9keSk7XHJcbn0gZWxzZSB7XHJcbiAgICBwcmludChcIiBcIik7XHJcbn0iLCJqc19pbmNsdWRlX2ZpbGVzIjpbXSwicHJvY2Vzc19rZXl3b3Jkc19qYXZhc2NyaXB0X2ZpbGVzIjpbXSwiYmVmb3JlX2NyZWF0ZSI6dHJ1ZX0sImFjdGl2ZSI6dHJ1ZX1dLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwibG9nIjp7ImF0dHJpZCI6IjE3ODQiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY2VpcHRfZW1haWxfYXR0YWNobWVudHMiOnsiYXR0cmlkIjoiMTc4NSIsInR5cGUiOiJkeW5hbWljX2ZpbGUiLCJ2YWx1ZSI6W10sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZWNpcGllbnRfZW1haWxfYXR0YWNobWVudHMiOnsiYXR0cmlkIjoiMTc4NiIsInR5cGUiOiJkeW5hbWljX2ZpbGUiLCJ2YWx1ZSI6W10sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdGFmX2VtYWlsX2F0dGFjaG1lbnRzIjp7ImF0dHJpZCI6IjE3ODciLCJ0eXBlIjoiZHluYW1pY19maWxlIiwidmFsdWUiOltdLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwibmV4dF9xdWVzdGlvbmlkIjp7ImF0dHJpZCI6IjE3MjUiLCJ0eXBlIjoiaW50IiwidmFsdWUiOiIyMSIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJxdWVzdGlvbnMiOnsiYXR0cmlkIjoiMTc3MSIsInR5cGUiOiJzZXJpYWxpc2UiLCJ2YWx1ZSI6eyIxIjp7InF1ZXN0aW9uX3R5cGVfY29kZSI6ImZvcm1fcXVlc3Rpb25fdHlwZV90ZXh0IiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiRmlyc3QgTmFtZSIsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJleHRyYSI6InBhbmVsSW5wdXRzIn19LCIyIjp7InF1ZXN0aW9uX3R5cGVfY29kZSI6ImZvcm1fcXVlc3Rpb25fdHlwZV90ZXh0IiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiTGFzdCBOYW1lIiwidmFsaWRhdGlvbl9jb25kaXRpb24iOltdLCJydWxlcyI6W10sImV4dHJhIjoicGFuZWxJbnB1dHMifX0sIjMiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX2VtYWlsX2FkZHJlc3MiLCJhdHRyaWJ1dGVzIjp7InRleHRfdHlwZSI6ImVtYWlsIiwiaXNfcmVxdWlyZWQiOnRydWUsImV4dHJhIjoicGFuZWxJbnB1dHMiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwiY3VzdF9yZXF1aXJlZF9lcnJvciI6IlBsZWFzZSBhZGQgYW4gZW1haWwgYWRkcmVzcyIsIm5hbWUiOiJFbWFpbCJ9fSwiNCI6eyJxdWVzdGlvbl90eXBlX2NvZGUiOiJmb3JtX3F1ZXN0aW9uX3R5cGVfc2VsZWN0IiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiU3VydmV5IE9wdC1pbiIsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJub3RlIjoiSSBhZ3JlZSB0byBiZSBjb250YWN0ZWQgYWJvdXQgc3VydmV5cy4iLCJkZWZhdWx0IjpbImZhbHNlIl0sImV4dHJhIjoib3B0aW4iLCJvcHRpb25zIjp7InRydWUiOiJ0cnVlIn0sImFsbG93X2VtcHR5Ijp0cnVlLCJlbXB0eV9rZXkiOiJmYWxzZSIsImVtcHR5X3RleHQiOiJmYWxzZSJ9fSwiNSI6eyJxdWVzdGlvbl90eXBlX2NvZGUiOiJmb3JtX3F1ZXN0aW9uX3R5cGVfc2VsZWN0IiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiR3JvdyB3aXRoIFVzIiwidmFsaWRhdGlvbl9jb25kaXRpb24iOltdLCJydWxlcyI6W10sImRlZmF1bHQiOlsiIl0sIm9wdGlvbnMiOnsidHJ1ZSI6InRydWUifSwiYWxsb3dfZW1wdHkiOnRydWUsImVtcHR5X3RleHQiOiJmYWxzZSJ9fSwiNiI6eyJxdWVzdGlvbl90eXBlX2NvZGUiOiJmb3JtX3F1ZXN0aW9uX3R5cGVfc2VsZWN0IiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiUHJlZ25hbmN5IiwidmFsaWRhdGlvbl9jb25kaXRpb24iOltdLCJydWxlcyI6W10sImRlZmF1bHQiOlsiIl0sImV4dHJhIjoicHJlZ25hbmN5Iiwib3B0aW9ucyI6eyJ0cnVlIjoidHJ1ZSJ9LCJhbGxvd19lbXB0eSI6dHJ1ZSwiZW1wdHlfa2V5IjoiZmFsc2UiLCJlbXB0eV90ZXh0IjoiZmFsc2UifX0sIjciOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX3NlbGVjdCIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IlBhcmVudGluZyAwLTgiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwiZGVmYXVsdCI6WyIiXSwiZXh0cmEiOiJwYXJlbnRpbmdfMF84Iiwib3B0aW9ucyI6eyJ0cnVlIjoidHJ1ZSJ9LCJhbGxvd19lbXB0eSI6dHJ1ZSwiZW1wdHlfa2V5IjoiZmFsc2UiLCJlbXB0eV90ZXh0IjoiZmFsc2UifX0sIjgiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX3NlbGVjdCIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IlBhcmVudGluZyB0ZWVucyIsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJkZWZhdWx0IjpbIiJdLCJleHRyYSI6InBhcmVudGluZ190ZWVucyIsIm9wdGlvbnMiOnsidHJ1ZSI6InRydWUifSwiYWxsb3dfZW1wdHkiOnRydWUsImVtcHR5X2tleSI6ImZhbHNlIiwiZW1wdHlfdGV4dCI6ImZhbHNlIn19LCI5Ijp7InF1ZXN0aW9uX3R5cGVfY29kZSI6ImZvcm1fcXVlc3Rpb25fdHlwZV9zZWxlY3QiLCJhdHRyaWJ1dGVzIjp7Im5hbWUiOiJQcm9mZXNzaW9uYWxzIiwidmFsaWRhdGlvbl9jb25kaXRpb24iOltdLCJydWxlcyI6W10sImRlZmF1bHQiOlsiIl0sImV4dHJhIjoicHJvZmVzc2lvbmFscyIsIm9wdGlvbnMiOnsidHJ1ZSI6InRydWUifSwiYWxsb3dfZW1wdHkiOnRydWUsImVtcHR5X2tleSI6ImZhbHNlIiwiZW1wdHlfdGV4dCI6ImZhbHNlIn19LCIxMSI6eyJxdWVzdGlvbl90eXBlX2NvZGUiOiJmb3JtX3F1ZXN0aW9uX3R5cGVfdGV4dCIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IllvdXIgY2hpbGRcdTIwMTlzIGZpcnN0IG5hbWUiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwibm90ZSI6Imdyb3dfd2l0aF91c19pbnB1dF8xIiwiZXh0cmEiOiJncm93X3dpdGhfdXNfaW5wdXRfMSIsInBsYWNlaG9sZGVyIjoiRW50ZXIgZmlyc3QgbmFtZSJ9fSwiMTIiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX2RhdGV0aW1lIiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiWW91ciBjaGlsZFx1MjAxOXMgZGF0ZSBvZiBiaXJ0aCIsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJub3RlIjoiZ3Jvd193aXRoX3VzX2RhdGFfcGlja2VyXzEiLCJjdXN0X3JlcXVpcmVkX2Vycm9yIjoiU29ycnksIHRoZSBkYXRlIHlvdSBlbnRlcmVkIGlzIG5vdCB2YWxpZC4gUGxlYXNlIHRyeSBhZ2Fpbi4gIiwic2hvdyI6eyJkIjoiMSIsIm0iOiIxIiwieSI6IjEiLCJoIjoiIiwiaSI6IiIsInMiOiIiLCJjIjoiIiwiYSI6IiJ9LCJudWxsIjp7ImQiOiIxIiwibSI6IjEiLCJ5IjoiMSIsImgiOiIiLCJpIjoiIiwicyI6IiJ9LCJ0ZXh0Ijp7ImQiOiIxIiwibSI6IjEiLCJ5IjoiMSIsImgiOiIiLCJpIjoiIiwicyI6IiJ9LCJwcmludF9mb3JtYXQiOiJZLW0tZCIsImV4dHJhcyI6eyJkIjoiIiwibSI6IiIsInkiOiIiLCJoIjoiIiwiaSI6IiIsInMiOiIiLCJhIjoiIn0sInVzZV9qcyI6ZmFsc2UsImN1cnJlbnRfZGF0ZSI6eyJtaW5pbXVtIjowLCJtYXhpbXVtIjoxLCJkZWZhdWx0IjowfX19LCIxMyI6eyJxdWVzdGlvbl90eXBlX2NvZGUiOiJmb3JtX3F1ZXN0aW9uX3R5cGVfdGV4dCIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IjJuZCBjaGlsZFx1MjAxOSdzIGZpcnN0IG5hbWUiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwibm90ZSI6Imdyb3dfd2l0aF91c19pbnB1dF8yIiwiZXh0cmEiOiJncm93X3dpdGhfdXNfaW5wdXRfMiJ9fSwiMTQiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX2RhdGV0aW1lIiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiQ2hpbGQgMiBEb0IiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwibm90ZSI6Imdyb3dfd2l0aF91c19kYXRhX3BpY2tlcl8yIiwiY3VzdF9yZXF1aXJlZF9lcnJvciI6IkNoaWxkIDIgRG9CIGlzIGludmFsaWQiLCJzaG93Ijp7ImQiOiIxIiwibSI6IjEiLCJ5IjoiMSIsImgiOiIiLCJpIjoiIiwicyI6IiIsImMiOiIiLCJhIjoiIn0sIm51bGwiOnsiZCI6IjEiLCJtIjoiMSIsInkiOiIxIiwiaCI6IiIsImkiOiIiLCJzIjoiIn0sInRleHQiOnsiZCI6IiIsIm0iOiIiLCJ5IjoiIiwiaCI6IiIsImkiOiIiLCJzIjoiIn0sInByaW50X2Zvcm1hdCI6IlktbS1kIiwiZXh0cmFzIjp7ImQiOiIiLCJtIjoiIiwieSI6IiIsImgiOiIiLCJpIjoiIiwicyI6IiIsImEiOiIifSwidXNlX2pzIjpmYWxzZSwiY3VycmVudF9kYXRlIjp7Im1pbmltdW0iOjAsIm1heGltdW0iOjAsImRlZmF1bHQiOjB9fX0sIjE1Ijp7InF1ZXN0aW9uX3R5cGVfY29kZSI6ImZvcm1fcXVlc3Rpb25fdHlwZV90ZXh0IiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiQ2hpbGQgMyBOYW1lIiwidmFsaWRhdGlvbl9jb25kaXRpb24iOltdLCJydWxlcyI6W10sIm5vdGUiOiJncm93X3dpdGhfdXNfaW5wdXRfMyIsImV4dHJhIjoiZ3Jvd193aXRoX3VzX2lucHV0XzMifX0sIjE2Ijp7InF1ZXN0aW9uX3R5cGVfY29kZSI6ImZvcm1fcXVlc3Rpb25fdHlwZV9kYXRldGltZSIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IkNoaWxkIDMgRG9CIiwidmFsaWRhdGlvbl9jb25kaXRpb24iOltdLCJydWxlcyI6W10sIm5vdGUiOiJncm93X3dpdGhfdXNfZGF0YV9waWNrZXJfMyIsImN1c3RfcmVxdWlyZWRfZXJyb3IiOiJDaGlsZCAzIERvQiIsInNob3ciOnsiZCI6IjEiLCJtIjoiMSIsInkiOiIxIiwiaCI6IiIsImkiOiIiLCJzIjoiIiwiYyI6IiIsImEiOiIifSwibnVsbCI6eyJkIjoiMSIsIm0iOiIxIiwieSI6IjEiLCJoIjoiIiwiaSI6IiIsInMiOiIifSwidGV4dCI6eyJkIjoiIiwibSI6IiIsInkiOiIiLCJoIjoiIiwiaSI6IiIsInMiOiIifSwicHJpbnRfZm9ybWF0IjoiWS1tLWQiLCJleHRyYXMiOnsiZCI6IiIsIm0iOiIiLCJ5IjoiIiwiaCI6IiIsImkiOiIiLCJzIjoiIiwiYSI6IiJ9LCJ1c2VfanMiOmZhbHNlLCJjdXJyZW50X2RhdGUiOnsibWluaW11bSI6MCwibWF4aW11bSI6MCwiZGVmYXVsdCI6MH19fSwiMTciOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX3RleHQiLCJhdHRyaWJ1dGVzIjp7Im5hbWUiOiJDaGlsZCA0IE5hbWUiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwibm90ZSI6Imdyb3dfd2l0aF91c19pbnB1dF80IiwiZXh0cmEiOiJncm93X3dpdGhfdXNfaW5wdXRfNCJ9fSwiMTgiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX2RhdGV0aW1lIiwiYXR0cmlidXRlcyI6eyJuYW1lIjoiQ2hpbGQgNCBEb0IiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwibm90ZSI6Imdyb3dfd2l0aF91c19kYXRhX3BpY2tlcl80IiwiY3VzdF9yZXF1aXJlZF9lcnJvciI6IkNoaWxkIDQgRG9CIGlzIGludmFsaWQiLCJzaG93Ijp7ImQiOiIxIiwibSI6IjEiLCJ5IjoiMSIsImgiOiIiLCJpIjoiIiwicyI6IiIsImMiOiIiLCJhIjoiIn0sIm51bGwiOnsiZCI6IjEiLCJtIjoiMSIsInkiOiIxIiwiaCI6IiIsImkiOiIiLCJzIjoiIn0sInRleHQiOnsiZCI6IiIsIm0iOiIiLCJ5IjoiIiwiaCI6IiIsImkiOiIiLCJzIjoiIn0sInByaW50X2Zvcm1hdCI6IlktbS1kIiwiZXh0cmFzIjp7ImQiOiIiLCJtIjoiIiwieSI6IiIsImgiOiIiLCJpIjoiIiwicyI6IiIsImEiOiIifSwidXNlX2pzIjpmYWxzZSwiY3VycmVudF9kYXRlIjp7Im1pbmltdW0iOjAsIm1heGltdW0iOjAsImRlZmF1bHQiOjB9fX0sIjE5Ijp7InF1ZXN0aW9uX3R5cGVfY29kZSI6ImZvcm1fcXVlc3Rpb25fdHlwZV9kYXRldGltZSIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IllvdXIgZHVlIGRhdGUiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwibm90ZSI6InByZWduYW5jeV9kYXRhX3BpY2tlciIsImN1c3RfcmVxdWlyZWRfZXJyb3IiOiJQcmVnbmFuY3kgZHVlIGRhdGUgaXMgaW52YWxpZCIsInNob3ciOnsiZCI6IjEiLCJtIjoiMSIsInkiOiIxIiwiaCI6IiIsImkiOiIiLCJzIjoiIiwiYyI6IiIsImEiOiIifSwibnVsbCI6eyJkIjoiMSIsIm0iOiIxIiwieSI6IjEiLCJoIjoiIiwiaSI6IiIsInMiOiIifSwidGV4dCI6eyJkIjoiIiwibSI6IiIsInkiOiIiLCJoIjoiIiwiaSI6IiIsInMiOiIifSwicHJpbnRfZm9ybWF0IjoiWS1tLWQiLCJleHRyYXMiOnsiZCI6IiIsIm0iOiIiLCJ5IjoiIiwiaCI6IiIsImkiOiIiLCJzIjoiIiwiYSI6IiJ9LCJ1c2VfanMiOmZhbHNlLCJjdXJyZW50X2RhdGUiOnsibWluaW11bSI6MCwibWF4aW11bSI6MCwiZGVmYXVsdCI6MH19fSwiMjAiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX3NlbGVjdCIsImF0dHJpYnV0ZXMiOnsibmFtZSI6IkFjY2VwdCBUZXJtcyBhbmQgQ29uZGl0aW9ucyIsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJub3RlIjoiSSBhY2NlcHQgdGhlIDxhIGhyZWY9XCJcL2xlZ2FsXC90ZXJtcy1vZi11c2VcIiB0YXJnZXQ9XCJfYmxhbmtcIiB0aXRsZT1cIk9wZW5zIGluIG5ldyB0YWJcIj50ZXJtcyAmIGNvbmRpdGlvbnM8XC9hPiBvZiB1c2UuIFJlYWQgb3VyIDxhIGhyZWY9XCJcL2xlZ2FsXC9wcml2YWN5XCIgdGFyZ2V0PVwiX2JsYW5rXCIgdGl0bGU9XCJPcGVucyBpbiBuZXcgdGFiXCI+cHJpdmFjeSBwb2xpY3k8XC9hPi4iLCJkZWZhdWx0IjpbImZhbHNlIl0sImV4dHJhIjoidGVybXMiLCJvcHRpb25zIjp7InRydWUiOiJ0cnVlIn0sImFsbG93X2VtcHR5Ijp0cnVlLCJlbXB0eV9rZXkiOiJmYWxzZSIsImVtcHR5X3RleHQiOiJmYWxzZSJ9fX0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJuYW1lIjp7ImF0dHJpZCI6IjE3MzYiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiRm9ybSBDb250ZW50cyIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImxvZ19zdWJtaXNzaW9ucyI6eyJhdHRyaWQiOiIxNzQ4IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInNob3dfcmVzdWx0cyI6eyJhdHRyaWQiOiIxNjkyIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9ib2R5Y29weV9tYWluIjp7ImF0dHJpZCI6IjE3MTYiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjp0cnVlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwidXNlX2JvZHljb3B5X3RoYW5rX3lvdSI6eyJhdHRyaWQiOiIxNzMwIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9ib2R5Y29weV9leGl0Ijp7ImF0dHJpZCI6IjE3NTUiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9ib2R5Y29weV9jb25maXJtYXRpb24iOnsiYXR0cmlkIjoiMTY5MCIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic3VibWlzc2lvbl9lcnJvcnNfbXNnIjp7ImF0dHJpZCI6IjE3NzAiLCJ0eXBlIjoid3lzaXd5ZyIsInZhbHVlIjoiPHAgY2xhc3M9XCJzcS1mb3JtLWVycm9ycy1tZXNzYWdlXCI+VGhlcmUgd2VyZSBlcnJvcnMgc3VibWl0dGluZyB0aGUgZm9ybS4mbmJzcDsmbmJzcDtQbGVhc2UgY29ycmVjdCB0aGUgbWFya2VkIGZpZWxkcyBhbmQgdHJ5IGFnYWluLjxcL3A+IiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVxdWlyZV9jYXB0Y2hhIjp7ImF0dHJpZCI6IjE3MTgiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfbGVuZ3RoIjp7ImF0dHJpZCI6IjE3NTAiLCJ0eXBlIjoiaW50IiwidmFsdWUiOiI1IiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfem9vbSI6eyJhdHRyaWQiOiIxNzAxIiwidHlwZSI6ImZsb2F0IiwidmFsdWUiOjIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2xpbmtfdGV4dCI6eyJhdHRyaWQiOiIxNzY1IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlJlZ2VuZXJhdGUgc2VjdXJpdHkga2V5IiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwidXNlX2NvbmZpcm1hdGlvbl9wYWdlIjp7ImF0dHJpZCI6IjE3NDAiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInNhdmVfYW5kX2V4aXRfYnV0dG9uIjp7ImF0dHJpZCI6IjE2ODYiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiU2F2ZSBhbmQgRXhpdCIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVuYXR0YWNoZWRfcGFnZV9uYW1lIjp7ImF0dHJpZCI6IjE3NjkiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiVW5hdHRhY2hlZCBGb3JtIEZpZWxkcyIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInN1Ym1pc3Npb25fZXhwaXJ5X3RpbWUiOnsiYXR0cmlkIjoiMTcwNiIsInR5cGUiOiJkdXJhdGlvbiIsInZhbHVlIjowLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV90ZXh0Y29sb3VyIjp7ImF0dHJpZCI6IjE3MTEiLCJ0eXBlIjoiY29sb3VyIiwidmFsdWUiOiIjMDAwMDAwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfYm9yZGVyY29sb3VyIjp7ImF0dHJpZCI6IjE2OTUiLCJ0eXBlIjoiY29sb3VyIiwidmFsdWUiOiIjMDAwMDAwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInN1Ym1pdF9idXR0b25fZXh0cmFzIjp7ImF0dHJpZCI6IjE3MjQiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlc2V0X2J1dHRvbl9leHRyYXMiOnsiYXR0cmlkIjoiMTcwNyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV91c2Vmb250Ijp7ImF0dHJpZCI6IjE3NTkiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfd2lkdGgiOnsiYXR0cmlkIjoiMTc3NiIsInR5cGUiOiJpbnQiLCJ2YWx1ZSI6IjIwMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2hlaWdodCI6eyJhdHRyaWQiOiIxNzYxIiwidHlwZSI6ImludCIsInZhbHVlIjoiMzYiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9hcmMiOnsiYXR0cmlkIjoiMTc2MCIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9hcmNfY29sb3VyIjp7ImF0dHJpZCI6IjE3MjkiLCJ0eXBlIjoiY29sb3VyIiwidmFsdWUiOiIjRDIwQTBBIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfaW5jbHVkZV91cHBlcmNhc2UiOnsiYXR0cmlkIjoiMTc0NyIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9sYWJlbF90ZXh0Ijp7ImF0dHJpZCI6IjE3NzQiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiVHlwZSB0aGUgY2hhcmFjdGVycyB5b3Ugc2VlIGluIHRoZSBwaWN0dXJlIGFib3ZlOiAiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfbW9sbG9tIjp7ImF0dHJpZCI6IjE3MjciLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sIm1vbGxvbV9xdWVzdGlvbnNfdG9fY2hlY2siOnsiYXR0cmlkIjoiMTY4MiIsInR5cGUiOiJzZXJpYWxpc2UiLCJ2YWx1ZSI6W10sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtb2xsb21fdW5zdXJlX3N1Ym1pc3Npb25fdGV4dCI6eyJhdHRyaWQiOiIxNzM5IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtb2xsb21fY2FwdGNoYV9sYWJlbF90ZXh0Ijp7ImF0dHJpZCI6IjE3NjMiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiVHlwZSB0aGUgY2hhcmFjdGVycyB5b3Ugc2VlIGluIHRoZSBwaWN0dXJlIGFib3ZlOiAiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJkaXNhYmxlX2tleXdvcmRfcmVwbGFjZW1lbnRzIjp7ImF0dHJpZCI6IjE2ODQiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjp0cnVlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic3VibWlzc2lvbl9saW1pdCI6eyJhdHRyaWQiOiIxNzQzIiwidHlwZSI6ImludCIsInZhbHVlIjoiMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdWJtaXNzaW9uX2xpbWl0X3JlYWNoZWRfdGV4dCI6eyJhdHRyaWQiOiIxNjk5IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlN1Ym1pc3Npb24gbGltaXQgaGFzIGJlZW4gcmVhY2hlZCBvbiB0aGlzIGZvcm0uIE5vIG1vcmUgc3VibWlzc2lvbiB3aWxsIGJlIGFjY2VwdGVkLiIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInB1YmxpY19pbmNvbXBsZXRlX3N1Ym1pc3Npb24iOnsiYXR0cmlkIjoiMTc1NiIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicHVibGljX2F1dGhfZW1haWxfcSI6eyJhdHRyaWQiOiIxNjg5IiwidHlwZSI6ImFzc2V0aWQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwdWJsaWNfYXV0aF9zdWJtaXRfYnV0dG9uX3RleHQiOnsiYXR0cmlkIjoiMTcxMyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJTdWJtaXQiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicHVibGljX2F1dGhfZm9ybV9mb3JtYXQiOnsiYXR0cmlkIjoiMTY5NyIsInR5cGUiOiJ3eXNpd3lnIiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwdWJsaWNfYXV0aF9pbmZvX2Zvcm1hdCI6eyJhdHRyaWQiOiIxNzUyIiwidHlwZSI6Ind5c2l3eWciLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInN1Ym1pdF90b19wYWdlX3VybCI6eyJhdHRyaWQiOiIxNzU4IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfcmVjYXB0Y2hhIjp7ImF0dHJpZCI6IjE2OTYiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY2FwdGNoYV92Ml90aGVtZSI6eyJhdHRyaWQiOiIxNzcyIiwidHlwZSI6InNlbGVjdGlvbiIsInZhbHVlIjoibGlnaHQiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVjYXB0Y2hhX3YyX3NpemUiOnsiYXR0cmlkIjoiMTc1MSIsInR5cGUiOiJzZWxlY3Rpb24iLCJ2YWx1ZSI6Im5vcm1hbCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ0aW1lX3JlcXVpcmVtZW50Ijp7ImF0dHJpZCI6IjE3MzQiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ0aW1lX3JlcXVpcmVtZW50X2Vycm9yX21lc3NhZ2UiOnsiYXR0cmlkIjoiMTc2MiIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiZm9ybV9leHRyYV9hdHRyaWJ1dGUiOnsiYXR0cmlkIjoiMTcxOSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVzdHJpY3RlZF9zdWJtaXNzaW9uX2FjY2VzcyI6eyJhdHRyaWQiOiIxNzA0IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY2lwaWVudF9lbWFpbHNfZm9ybWF0Ijp7ImF0dHJpZCI6IjE3NzkiLCJ0eXBlIjoiZW1haWxfZm9ybWF0IiwidmFsdWUiOnsidG8iOltdLCJ0b19hc3NldGlkcyI6W10sImZyb20iOiIiLCJyZXBseV90byI6IiIsInN1YmplY3QiOiIiLCJodG1sX2Zvcm1hdCI6IiIsInRleHRfZm9ybWF0IjoiIiwiaW5jX2F0dGFjaG1lbnRzIjpbXSwiYXR0YWNobWVudHMiOltdLCJhc3NldF90b19zZW5kIjoiIiwiZGVzaWduX3RvX2FwcGx5IjoiIiwibGF5b3V0X3RvX2FwcGx5IjoiIn0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdGFmX2ZpZWxkIjp7ImF0dHJpZCI6IjE3ODAiLCJ0eXBlIjoiYXNzZXRpZCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX19LCJtZXRhZGF0YSI6W119"},"instagramUrl":"https://www.instagram.com/raisingchildren.net.au","linkedinUrl":"https://au.linkedin.com/company/raising-children-network","twitterUrl":"","facebookUrl":"https://www.facebook.com/RaisingChildrenNetwork","googlePlusUrl":"null","youtubeUrl":"https://www.youtube.com/user/RaisingChildren2011","matrixSearchPage":"https://raisingchildren.net.au/search","movieReviewSearchPage":"https://raisingchildren.net.au/guides/movie-reviews","footerMenuBlocks":["a23224","a23232","a23240"],"_webserviceSuggestUrl":"https://prc-search.squiz.cloud/s/suggest.json","_webserviceSearchUrl":"https://prc-search.squiz.cloud/s/search.html","_webserviceSearchHost":"https://prc-search.squiz.cloud","queryObject":{"query":"!padrenull","collection":"raising-children-web","uatCollection":"raising-children-web-uat","form":"matrix_json","metaAND_pageContentLang":"en"}} })(sq); </script> <!--<script async src="https://raisingchildren.net.au?SQ_DESIGN_NAME=menu"></script>--> <!-- menu.optimised.js PROD:#98836 STAGE: #92832 DEV: #92816 --> <script async src="https://raisingchildren.net.au/menu.optimised.js"></script> <!-- /end src-matrix/nested-content/head/global-design-head-site-state.html --> <!-- begin src-matrix/nested-content/head/global-design-head-page-state.html --> <meta name="lineage" content="91;24515;29115;32267;32873" /> <meta name="top_level_item" content="Babies (3-12 months)" /> <meta name="stage_group" content="0-12 months" /> <meta name="asset_name" content="Vitamins and minerals" /> <meta name="asset_short_name" content="Vitamins & minerals" /> <meta name="page_thumbnail_url" content="" /> <meta name="header_banner_url" content="https://raisingchildren.net.au/__data/assets/image/0027/48753/Vitamins-and-minerals-2.jpg" /> <meta name="header_banner_square_url" content="https://raisingchildren.net.au/__data/assets/image/0031/48757/vitamins-and-minerals-narrow.jpg" /> <meta name="language" content="en" /> <meta name="article_type" content="Article" /> <meta name="fb_tab" content="Article" /> <meta name="fb_search_meta" content="Article" /> <script> sq.state.page = {"articleType":"Article","lineage":["91","24515","29115","32267","32873"],"lineageDetail":[{"asset_assetid":"91","asset_name":"Raising Children Network","asset_short_name":"Raising Children Network","asset_linking_info_current":{"linkid":"94","link_type":"1","link_value":"","lineage":["83"]},"asset_url":"https://raisingchildren.net.au","asset_metadata_stage_group":null},{"asset_assetid":"24515","asset_name":"Babies (3-12 months)","asset_short_name":"Babies","asset_linking_info_current":{"linkid":"178225","link_type":"1","link_value":"","lineage":["83","91"]},"asset_url":"https://raisingchildren.net.au/babies","asset_metadata_stage_group":"0-12 months"},{"asset_assetid":"29115","asset_name":"Babies: breastfeeding, bottle-feeding & solids","asset_short_name":"Breastfeeding, bottle-feeding & solids","asset_linking_info_current":{"linkid":"100500","link_type":"1","link_value":"","lineage":["83","91","24515"]},"asset_url":"https://raisingchildren.net.au/babies/breastfeeding-bottle-feeding-solids","asset_metadata_stage_group":null},{"asset_assetid":"32267","asset_name":"Babies: nutrients","asset_short_name":"Nutrients","asset_linking_info_current":{"linkid":"105313","link_type":"1","link_value":"","lineage":["83","91","24515","29115"]},"asset_url":"https://raisingchildren.net.au/babies/breastfeeding-bottle-feeding-solids/nutrients","asset_metadata_stage_group":null},{"asset_assetid":"32873","asset_name":"Vitamins and minerals","asset_short_name":"Vitamins & minerals","asset_linking_info_current":{"linkid":"106308","link_type":"1","link_value":"","lineage":["83","91","24515","29115","32267"]},"asset_url":"https://raisingchildren.net.au/babies/breastfeeding-bottle-feeding-solids/nutrients/vitamins-minerals","asset_metadata_stage_group":null}],"frontend_asset_name":"Vitamins and minerals","frontend_asset_short_name":"Vitamins & minerals","assetType":"page_standard","assetid":"32873","asset_url":"https://raisingchildren.net.au/babies/breastfeeding-bottle-feeding-solids/nutrients/vitamins-minerals","thumbnail_url":"","defaultThumbnailURL":"https://raisingchildren.net.au/__data/assets/image/0006/40110/placeholder-wide.jpg","defaultThumbnailSquareURL":"https://raisingchildren.net.au/__data/assets/image/0014/40109/placeholder-narrow.jpg","video":false,"counter":1162,"description":"Kids and teens need vitamins and minerals for health and development. They can get vitamins and minerals by eating a variety of foods from the 5 food groups.","videoUrl":"","videoDescription":"","l1Header":"Babies (3-12 months)","heroSection":{"otherLanguage":false,"background":{"mobile":"https://raisingchildren.net.au/__data/assets/image/0031/48757/vitamins-and-minerals-narrow.jpg","tablet":"https://raisingchildren.net.au/__data/assets/image/0027/48753/Vitamins-and-minerals-2.jpg","desktop":"https://raisingchildren.net.au/__data/assets/image/0027/48753/Vitamins-and-minerals-2.jpg","show":true},"preheading":"","ageMin":"0","ageMax":"216","ageSuitabilityDisplay":"","heading":"Vitamins and minerals","intro":"Kids and teens need vitamins and minerals for health and development. They can get vitamins and minerals by eating a variety of foods from the 5 food groups.","showIntro":false,"landing":false,"button":{"toParent":{"href":"https://raisingchildren.net.au/babies/breastfeeding-bottle-feeding-solids/nutrients","text":"Nutrients"},"share":{"href":"https://raisingchildren.net.au/babies/breastfeeding-bottle-feeding-solids/nutrients/vitamins-minerals","addThisLink":""}},"rtl":"ltr"},"topLevelItem":{"asset_assetid":"24515","asset_name":"Babies (3-12 months)","asset_short_name":"Babies","asset_linking_info_current":{"linkid":"178225","link_type":"1","link_value":"","lineage":["83","91"]},"asset_url":"https://raisingchildren.net.au/babies","asset_metadata_stage_group":"0-12 months"},"stageGroup":{"asset_assetid":"24515","asset_name":"Babies (3-12 months)","asset_short_name":"Babies","asset_linking_info_current":{"linkid":"178225","link_type":"1","link_value":"","lineage":["83","91"]},"asset_url":"https://raisingchildren.net.au/babies","asset_metadata_stage_group":"0-12 months"},"pageContentDir":"ltr","otherLanguage":"en"} </script> <!-- /end src-matrix/nested-content/head/global-design-head-page-state.html --> <!-- begin src-matrix/nested-content/head/global-design-head-user-state.html --> <script> sq.state.user = {"isUserLoggedIn":false,"loggedInOverride":false,"first_name":"","last_name":""} </script> <!-- /end src-matrix/nested-content/head/global-design-head-user-state.html --> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"> <title>Vitamins & minerals for kids & teens | Raising Children Network</title> <!-- Article //--> <!-- Article //--> <meta name="article_intro" content="<p>Key points</p><ul type="disc"><li>Children and teenagers need a range of vitamins and minerals for growth, development and health.</li><li>Children and teenagers can get vitamins and minerals by eating a variety of foods from the 5 food groups.</li><li>If children and teenagers don&rsquo;t get enough vitamins or minerals, it can lead to growth, development and health problems.</li><li>Talk with your GP or a dietitian if you&rsquo;re concerned about the vitamins and minerals in your family&rsquo;s diet.</li></ul>" /> <meta name="article_inpage_show" content="true" /> <meta name="article_inpage_intro" content="On this page:" /> <meta name="article_acknowledgements" content="<p>Our content is regularly reviewed for quality and currency. The last review of this article was by Dr Ewa Szymlek-Gay, Senior Lecturer in Nutrition Sciences, Institute for Physical Activity and Nutrition, School of Exercise and Nutrition Sciences, Deakin University. <a href="https://raisingchildren.net.au/about-us/our-experts-partners/scientific-advisory-board">Scientific Advisory Board</a> review was provided by Professor Kay Gibbons.</p><p>raisingchildren.net.au talks about &lsquo;pregnant women&rsquo;, &lsquo;birthing mothers&rsquo;, &lsquo;non-birthing parents&rsquo;, &lsquo;partners&rsquo; and &lsquo;breastfeeding&rsquo;. We recognise that parents and families use various words to talk about themselves and their bodies. We respect their chosen terminology.</p>" /> <meta name="article_references" content="<p>Australian Bureau of Statistics. (2017). <em>Australian health survey: Consumption of food groups from the Australian dietary guidelines, 2011-12.</em> Commonwealth of Australia. Retrieved 23 August 2023 from https://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/4364.0.55.012Main+Features100032011-12?OpenDocument.</p><p>Australian Bureau of Statistics (2013). <em>Australian health survey: Biomedical results for nutrients, 2011-12. </em>Commonwealth of Australia. Retrieved 23 August 2023 from https://www.abs.gov.au/ausstats/abs@.nsf/Lookup/4364.0.55.006Chapter1202011-12.</p><p>Das, J.K., Salam, R.A., Mahmood, S.B., Moin, A., Kumar, R., Mukhtar, K., Lassi, Z.S., &amp; Bhutta, Z.A. (2019). Food fortification with multiple micronutrients: Impact on health outcomes in general population. <em>Cochrane Database of Systematic Reviews 2019</em>, <em>12</em>, CD011400. https://doi.org/10.1002/14651858.CD011400.pub2.</p><p>da Silva Lopes, K., Yamaji, N., Rahman, M.O., Suto, M., Takemoto, Y., Garcia-Casal, M.N., &amp; Ota, E. (2021). Nutrition‐specific interventions for preventing and controlling anaemia throughout the life cycle: An overview of systematic reviews. <em>Cochrane Database of Systematic Reviews 2021, 9</em>, CD013092. https://doi.org/10.1002/14651858.CD013092.pub2.</p><p>Kirby, M., &amp; Danner, E. (2009). Nutritional deficiencies in children on restricted diets. <em>Pediatric Clinics of North America, 56</em>(5), 1085-1103. https://doi.org/10.1016/j.pcl.2009.07.003.</p><p>Lopez, A., Cacoub, P., Macdougall, I.C., &amp; Peyrin-Biroulet, L. (2016). Iron deficiency anaemia. <em>Lancet</em>, <em>387</em>(10021), 907-916. https://doi.org/10.1016/S0140-6736(15)60865-0.</p><p>Moses, G. (2021). The safety of commonly used vitamins and minerals. <em>Australian Prescriber, 44</em>(4), 119-123. https://doi.org/10.18773/austprescr.2021.029.</p><p>National Health and Medical Research Council (NHMRC). (2018). <em>Nutrient reference values for Australia and New Zealand.</em> NHMRC. Retrieved 23 August 2023 from https://www.eatforhealth.gov.au/nutrient-reference-values.</p><p>National Health and Medical Research Council (NHMRC). (2013). <em>How much do we need each day?</em> NHMRC. Retrieved 23 August 2023 from https://www.eatforhealth.gov.au/food-essentials/how-much-do-we-need-each-day.</p><p>The Royal Children&rsquo;s Hospital (RCH). (2019). <em>Iron deficiency</em>. RCH. Retrieved 23 August 2023 from https://www.rch.org.au/clinicalguide/guideline_index/Iron_deficiency/.</p>" /> <meta name="article_related_articles" content="["37807","37912","43104","37819","41381","37739"]" /> <meta name="article_external_links" content="["125777","125778"]" /> <meta name="article_tags" content="" /> <meta name="article_lote_name" content="" /> <meta name="article_helpful_yes" content="1162" /> <meta name="article_helpful_no" content="414" /> <!-- Configuration - Page Layout //--> <!-- Age //--> <meta name="page_age_min" content="0" /> <meta name="page_age_max" content="216" /> <meta name="page_age_suitability_display" content="" /> <!-- Top Banner //--> <meta name="page_layout_header_banner" content="48753" /> <meta name="page_layout_header_banner_square" content="48757" /> <meta name="page_layout_header_show_banner" content="true" /> <meta name="page_layout_header_intro" content="" /> <meta name="page_layout_header_show_intro" content="false" /> <meta name="page_layout_header_landing" content="" /> <meta name="page_layout_header_show_breadcrumbs" content="true" /> <!-- Legacy //--> <meta name="page_legacy_asset_id" content="606" /> <meta name="page_legacy_asset_type" content="Article" /> <meta name="page_legacy_urls" content="http://raisingchildren.net.au/articles/vitamins.html" /> <meta name="page_legacy_short_title" content="Vitamins & minerals" /> <!-- Content //--> <meta name="page_content_svg_thumbnail" content="" /> <meta name="page_content_dir" content="ltr" /> <meta name="page_content_lang" content="en" /> <!-- Layout //--> <meta name="page_layout_header_site_show" content="true" /> <meta name="page_layout_sidebar_left_show" content="true" /> <meta name="page_layout_sidebar_left_site_show" content="true" /> <meta name="page_layout_sidebar_right_site_show" content="true" /> <meta name="page_layout_share_social_links_show" content="true" /> <meta name="page_layout_footer_site_show" content="true" /> <meta name="page_layout_sidebar_above_main_mobile" content="sidebar-below" /> <!-- Main Nav //--> <meta name="page_header_nav_main_heading" content="Vitamins &amp; minerals" /> <meta name="page_header_nav_main_description" content="" /> <meta name="page_header_nav_main_group" content="" /> <meta name="page_header_nav_icon" content="" /> <!-- Advanced //--> <meta name="page_layout_head" content="" /> <meta name="page_layout_breadcrumbs_show" content="true" /> <meta name="page_layout_h1_show" content="false" /> <meta name="page_layout_header_pre" content="" /> <meta name="page_layout_header_top" content="40061" /> <meta name="page_layout_header_banner_show" content="true" /> <meta name="page_layout_header_banner_show_tabs" content="false" /> <meta name="page_layout_header_bottom" content="" /> <meta name="page_layout_main_pre" content="" /> <meta name="page_layout_sidebar_left_top" content="" /> <meta name="page_layout_sidebar_left_bottom" content="" /> <meta name="page_layout_sidebar_right_top" content="" /> <meta name="page_layout_sidebar_right_bottom" content="" /> <meta name="page_layout_footer_top" content="" /> <meta name="page_layout_footer_bottom" content="" /> <meta name="page_layout_footer_post" content="23595" /> <meta name="page_layout_has_main_page_wrapper" content="true" /> <meta name="page_layout_head_ad_hoc_styles" content="" /> <meta name="page_layout_footer_ad_hoc_scripts" content="" /> <!-- SEO - Basic Metadata //--> <!-- User Defined //--> <meta name="page_title" content="Vitamins & minerals for kids & teens | Raising Children Network" /> <meta name="description" content="Kids and teens need vitamins and minerals for health and development. They can get vitamins and minerals by eating a variety of foods from the 5 food groups." /> <meta name="date" content="2023-09-11 00:00:00" /> <link rel="canonical" href="https://raisingchildren.net.au/teens/healthy-lifestyle/nutrients/vitamins-minerals" /><!-- #44918 --> <meta name="keywords" content="Vitamins,Vitamin,Minerals,Mineral,Nutrients,Nutrient, Essential nutrients, Food nutrients, Nutrients in food,Deficiency, Iron, Calcium, Iodine, Potassium, Magnesium, Zinc, Copper, Vitamin A, Vitamin B, Vitamin C, Vitamin D, Vitamin E" /> <meta name="author" content="" /> <meta name="copyright" content="" /> <meta name="robots" content="index,follow" /> <!-- SEO - Open Graph //--> <!-- Required //--> <meta property="og:title" content="Vitamins and minerals" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://raisingchildren.net.au/babies/breastfeeding-bottle-feeding-solids/nutrients/vitamins-minerals" /> <meta property="og:image" content="https://raisingchildren.net.au/__data/assets/image/0027/48753/Vitamins-and-minerals-2.jpg" /> <!-- Optional //--> <meta property="og:audio" content="https://raisingchildren.net.au/babies/breastfeeding-bottle-feeding-solids/nutrients/vitamins-minerals" /> <meta property="og:site_name" content="Raising Children Network" /> <!-- SEO - Twitter Card //--> <!-- Card //--> <meta property="twitter:title" content="Vitamins and minerals" /> <meta property="twitter:image" content="https://raisingchildren.net.au/__data/assets/image/0027/48753/Vitamins-and-minerals-2.jpg" /> <meta property="twitter:image_width" content="1280" /> <meta property="twitter:image_height" content="720" /> <!-- Products //--> <!-- iPhone App //--> <!-- iPad App //--> <!-- Google Play //--> <!-- Nested Favicons: #113 --> <link rel="apple-touch-icon" sizes="180x180" href="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/favicon-16x16.png"> <link rel="manifest" href="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/site.webmanifest"> <link rel="mask-icon" href="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/safari-pinned-tab.svg" color="#5bbad5"> <meta name="msapplication-TileColor" content="#da532c"> <meta name="theme-color" content="#ffffff"> <!--<script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/vendor/modernizr.min.js"></script>--> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/vendor/react.production.min.js" crossorigin="anonymous"></script> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/vendor/react-dom.production.min.js" crossorigin="anonymous"></script> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/vendor/prop-types.min.js" crossorigin="anonymous"></script> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/vendor/create-react-class.min.js" crossorigin="anonymous"></script> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/vendor/moment.min.js" crossorigin="anonymous"></script> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/vendor/en-au.js" crossorigin="anonymous"></script> <link rel="stylesheet" href="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/main.css?h=3376513"> <!-- Site Layout Footer Scripts --> <!-- /Site Head --> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-TT2KS7B');</script> <!-- End Google Tag Manager --> <script src="https://www.google.com/recaptcha/api.js" async defer></script> <meta name="google-site-verification" content="EnaXP8S0SL4XL7MB_al5NC98jTn5rosmqIa6o2ICQ6E" /> <meta name="asset_id" content="32873"/> <meta name="site_internal_domains" content=""/> <!-- Running Squiz Matrix Developed by Squiz - http://www.squiz.net Squiz, Squiz Matrix, MySource, MySource Matrix and Squiz.net are registered Trademarks of Squiz Pty Ltd Page generated: 28 November 2024 15:06:43 --> </head> <body> <input type="hidden" name="token" value="1398fa933ab561478d4c480209c0993de75df47a" class="sq-form-field" id="token" /><!-- begin src-matrix/nested-content/header/global-design-skip-to-content.html --> <div id="skip-to-links-wrapper"> <script> (function(sq) { var isFirefox = typeof InstallTrigger !== 'undefined'; if(isFirefox) { document.getElementById('skip-to-links-wrapper').style.visibility = 'hidden'; sq.ready(() => document.getElementById('footer'), () => document.getElementById('skip-to-links-wrapper').style.visibility = 'visible'); } })(window.sq) </script> <div id="skip-links" class="skip-links" aria-hidden="true"> <ul class="skip-links__list"> <li class="skip-links__item"><a class="skip-links__link" href="#main">Skip to content</a></li> <li class="skip-links__item"><a class="skip-links__link" href="#navigation">Skip to navigation</a></li> </ul> </div> </div> <!-- /end src-matrix/nested-content/header/global-design-skip-to-content.html --> <div id="page-wrapper" class="page-wrapper"> <!-- begin src-matrix/nested-content/header/global-design-header.html --> <div id="header-mobile"></div> <div id="header-tablet"></div> <div id="header-desktop"></div> <script>console['info']("Begin 'transducer' for container #global-modal-44447 globalModal")</script><script>console['info']("Complete 'transducer' for container #global-modal-44447 globalModal")</script><script>console['info']("Begin 'globalModal' for container #global-modal-44447")</script><!-- Begin container id #global-modal-44447 'globalModal' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/global-modal.js?v=2023-04-24T035717.998Z" id="globalModal"></script></div><div id="global-modal-44447" class="global-modal container-template"></div><script>try {sq.globalModal('global-modal-44447', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"global-modal","namespace":"global-modal","assetid":"44447","id":"global-modal-44447","camel":"globalModal","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/global-modal.js","containerType":"div"}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `globalModal` with id `global-modal-44447`") }</script></div> <!-- End container id #global-modal-44447 'globalModal' --> <script>console['info']("Complete 'globalModal' for container #global-modal-44447")</script> <header role="banner" class="header" id="header"> <!-- begin src-matrix/nested-content/header/global-site-header.html --> <div class="header__contents"><div class="header__bar"><div class="header__container"><button type="button" id="toggle-nav-main" aria-controls="header-drawer-contents" aria-pressed="false" class="header-control header-control--nav"><span class="sr-only">Toggle Main Nav Menu</span></button><a href="https://raisingchildren.net.au" class="header-logo" title="Raising Children Network"><img src="https://raisingchildren.net.au/__data/assets/file/0012/23340/logo.svg" alt="Raising Children Network" class="header-logo__image"/></a><button type="button" id="toggle-header-search" aria-controls="toggle-header-search" aria-pressed="false" class="header-control header-control--search"><span class="sr-only">Toggle Header Search</span></button></div></div><div class="header-search"><button type="button" id="close-header-search-mobile" aria-controls="close-header-search-mobile" class="header-control header-control--close-search-mobile"><span class="header-control--close-search-mobile--text">close</span></button><div class="search"><form method="get" role="search" action="https://raisingchildren.net.au/search" id="header-search" class="search__form"></form></div></div><div class="header-drawer" id="header-drawer"><div id="header-drawer-contents" class="header-drawer__contents"><div class="header-menus"><nav id="nav-main" class="nav-main" role="navigation"><ul id="nav-main-list-base" aria-label="Main Navigation Menu" class="nav-main__list nav-main__list--level-1"><li role="none" class="nav-main__item nav-main__item--level-home"><a href="https://raisingchildren.net.au" class="nav-main__link nav-main__link--level-home" role="img" title="Link to Raising Children Network homepage" aria-label="Link to Raising Children Network homepage"><span class="nav-main__link-text nav-main__link-text--home"></span></a></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/pregnancy" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Pregnancy</span></a><div class="level-wrapper menu-item-0"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/newborns" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Newborns</span></a><div class="level-wrapper menu-item-1"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/babies" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Babies</span></a><div class="level-wrapper menu-item-2"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/toddlers" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Toddlers</span></a><div class="level-wrapper menu-item-3"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/preschoolers" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Preschoolers</span></a><div class="level-wrapper menu-item-4"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/school-age" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">School age</span></a><div class="level-wrapper menu-item-5"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/pre-teens" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Pre-teens</span></a><div class="level-wrapper menu-item-6"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/teens" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Teens</span></a><div class="level-wrapper menu-item-7"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/grown-ups" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Grown-ups</span></a><div class="level-wrapper menu-item-8"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/autism" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Autism</span></a><div class="level-wrapper menu-item-9"></div></li><li role="none" class="nav-main__item nav-main__item--level-1 nav-main__item nav-item__closed"><a href="/disability" aria-expanded="false" class="nav-main__link nav-main__link--level-1 tablet-hide nav-item__closed"><span class="nav-main__link-text nav-main__link-text--level-1">Disability</span></a><div class="level-wrapper menu-item-10"></div></li></ul></nav></div></div></div></div> </header> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/navigation.js?h=3376513"></script> <script> // begin src-matrix/nested-content/header/site-layout-header-navigation-transducer.js (function (exports,sq) { 'use strict'; var generateItems = function (menu, final) { var nmenu = {}; if (menu.meta) { var meta = menu.meta; delete menu['meta']; final[meta.assetid] = meta; Object.keys(menu).forEach(function (item) { var menuItem = menu[item]; if (Object.keys(menuItem).length) { menu[item] = generateItems(menuItem, final); } nmenu[item] = menu[item]; }); } return nmenu; }; var navigationTransducer = function (ref) { var state = ref.state; var menu = ref.menu; var siteTree = ref.siteTree; menu = sq.copy(menu); menu.meta = { assetid: 'base' }; var final = Object.assign(sq.copy(state.site), sq.copy(state.user), {siteTree: siteTree}); final.items = generateItems(menu, final); return final; }; var baseNavItems = function (siteTree, level) { if ( level === void 0 ) level = 0; return Object.keys(siteTree).reduce(function (accum, key, index) { if (key !== 'meta') { var childSiteTree = siteTree[key]; accum[key] = { meta: childSiteTree.meta }; if (level < 1) { accum[key] = Object.assign({}, accum[key], baseNavItems(childSiteTree, level + 1)); } } return accum; }, {}); }; sq.navigationTransducer = navigationTransducer; sq.baseNavItems = baseNavItems; }({},sq)); // /end src-matrix/nested-content/header/site-layout-header-navigation-transducer.js /** * Dependencies: * - State: src-matrix/nested-content/head/global-design-head-site-state.html */ sq.ready( function() { return sq.siteTree }, function () { const siteTree = sq.baseNavItems(sq.copy(sq.siteTree)); document.getElementById('header').innerHTML = ''; sq.navigation('header', sq.navigationTransducer({state: sq.state, menu: siteTree, siteTree: siteTree})); } ) </script> <!-- /end src-matrix/nested-content/header/global-site-header.html --> <!-- /end src-matrix/nested-content/header/global-design-header.html --> <div class="main-wrapper"> <script>console['info']("Begin 'transducer' for container #hero-section-52511 heroSection")</script><script>console['info']("Complete 'transducer' for container #hero-section-52511 heroSection")</script><script>console['info']("Begin 'heroSection' for container #hero-section-52511")</script><!-- Begin container id #hero-section-52511 'heroSection' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/hero-section.js?v=2023-04-24T035717.998Z" id="heroSection"></script></div><section id="hero-section-52511" class="hero container-template"></section><script>try {sq.heroSection('hero-section-52511', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"hero","namespace":"hero-section","assetid":"52511","id":"hero-section-52511","otherLanguage":false,"background":{"mobile":"https://raisingchildren.net.au/__data/assets/image/0031/48757/vitamins-and-minerals-narrow.jpg","tablet":"https://raisingchildren.net.au/__data/assets/image/0027/48753/Vitamins-and-minerals-2.jpg","desktop":"https://raisingchildren.net.au/__data/assets/image/0027/48753/Vitamins-and-minerals-2.jpg","show":true},"preheading":"","ageMin":"0","ageMax":"216","ageSuitabilityDisplay":"","heading":"Vitamins and minerals","intro":"Kids and teens need vitamins and minerals for health and development. They can get vitamins and minerals by eating a variety of foods from the 5 food groups.","showIntro":false,"landing":false,"showBreadcrumbs":true,"button":{"toParent":{"href":"https://raisingchildren.net.au/babies/breastfeeding-bottle-feeding-solids/nutrients","text":"Nutrients"},"share":{"href":"https://raisingchildren.net.au/babies/breastfeeding-bottle-feeding-solids/nutrients/vitamins-minerals","addThisLink":"//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5b9f3f5d2d7038d5","icons":{"fbIcon":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/social-share-fb.svg","mailIcon":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/social-share-mail.svg","pinIcon":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/social-share-pin.svg","plusIcon":"","printIcon":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/social-share-print.svg","linkedinIcon":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/files/social-share-linkedin.svg"}}},"rtl":"ltr","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/hero-section.js","camel":"heroSection","containerType":"section"}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `heroSection` with id `hero-section-52511`") }</script></div> <!-- End container id #hero-section-52511 'heroSection' --> <script>console['info']("Complete 'heroSection' for container #hero-section-52511")</script> <!-- begin src-matrix/nested-content/main/global-design-body-main.html --> <div class="container"> <div class="row justify-content-center sidebar-below"> <div class="col-sm-12 col-lg-9 section-main"> <main class="main" id="main"> <div class="content-viewport"> <div > <script>console['info']("Begin 'transducer' for container #article-intro-23457 articleIntro")</script><script>console['info']("Complete 'transducer' for container #article-intro-23457 articleIntro")</script><script>console['info']("Begin 'articleIntro' for container #article-intro-23457")</script><!-- Begin container id #article-intro-23457 'articleIntro' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/article-intro.js?v=2023-04-24T035717.998Z" id="articleIntro"></script></div><div id="article-intro-23457" class="article-intro container-template"></div><script>try {sq.articleIntro('article-intro-23457', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"article-intro","namespace":"article-intro","assetid":"23457","id":"article-intro-23457","camel":"articleIntro","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/article-intro.js","containerType":"div","counter":1162,"introduction":"PHA+S2V5IHBvaW50czwvcD48dWwgdHlwZT0iZGlzYyI+PGxpPkNoaWxkcmVuIGFuZCB0ZWVuYWdlcnMgbmVlZCBhIHJhbmdlIG9mIHZpdGFtaW5zIGFuZCBtaW5lcmFscyBmb3IgZ3Jvd3RoLCBkZXZlbG9wbWVudCBhbmQgaGVhbHRoLjwvbGk+PGxpPkNoaWxkcmVuIGFuZCB0ZWVuYWdlcnMgY2FuIGdldCB2aXRhbWlucyBhbmQgbWluZXJhbHMgYnkgZWF0aW5nIGEgdmFyaWV0eSBvZiBmb29kcyBmcm9tIHRoZSA1IGZvb2QgZ3JvdXBzLjwvbGk+PGxpPklmIGNoaWxkcmVuIGFuZCB0ZWVuYWdlcnMgZG9uJnJzcXVvO3QgZ2V0IGVub3VnaCB2aXRhbWlucyBvciBtaW5lcmFscywgaXQgY2FuIGxlYWQgdG8gZ3Jvd3RoLCBkZXZlbG9wbWVudCBhbmQgaGVhbHRoIHByb2JsZW1zLjwvbGk+PGxpPlRhbGsgd2l0aCB5b3VyIEdQIG9yIGEgZGlldGl0aWFuIGlmIHlvdSZyc3F1bztyZSBjb25jZXJuZWQgYWJvdXQgdGhlIHZpdGFtaW5zIGFuZCBtaW5lcmFscyBpbiB5b3VyIGZhbWlseSZyc3F1bztzIGRpZXQuPC9saT48L3VsPg=="}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `articleIntro` with id `article-intro-23457`") }</script></div> <!-- End container id #article-intro-23457 'articleIntro' --> <script>console['info']("Complete 'articleIntro' for container #article-intro-23457")</script> <div id="inpage-nav"></div> <div id="main-content" > <div id="content_container_32875"> <ul class="anchorlinks"></ul><h2>Vitamins and minerals: the basics</h2><p>Your child needs a lot of essential <a href="https://raisingchildren.net.au/_media/glossary/vitamins" class="glossary">vitamins</a> and <a href="https://raisingchildren.net.au/_media/glossary/minerals" class="glossary">minerals</a> for growth, development and good health. These include:</p><ul type="disc"><li>vitamins A, B, C, D, E, K and folate</li><li>minerals like calcium, iodine, iron and zinc.</li></ul><p>The best way for your child to get enough vitamins and minerals is by <strong>eating a wide variety of foods from the 5 healthy food groups</strong>:</p><ul type="disc"><li>vegetables and <a href="https://raisingchildren.net.au/_media/glossary/legumes" class="glossary">legumes</a></li><li>fruit</li><li>cereals and grain foods</li><li>foods with <a href="https://raisingchildren.net.au/_media/glossary/protein" class="glossary">protein</a>, including meat and <a href="https://raisingchildren.net.au/_media/glossary/meat-alternatives" class="glossary">meat alternatives</a></li><li>dairy or <a href="https://raisingchildren.net.au/_media/glossary/dairy-alternatives" class="glossary">dairy alternatives</a>.</li></ul><p class="asterisk">Most vitamins, minerals and other nutrients are absorbed better when they come from food, rather than from vitamin and mineral supplements.</p><h2>Vitamins and how to get them</h2><p>Here’s a list of the vitamins you and your family need and how to get them.</p><p><strong>Vitamin A</strong><br /> You get vitamin A from:</p><ul><li>leafy green vegetables like spinach and kale</li><li>orange fruit and vegetables like carrots, pumpkin, sweet potatoes and apricots</li><li>liver, oily fish like salmon and tuna, and eggs</li><li>butter, margarine and full-fat milk.</li></ul><p>You need vitamin A for eyesight, healthy skin, growth, development and good immune function.</p><p><strong>Vitamin B1 (thiamin)</strong><br /> You get vitamin B1 from:</p><ul><li><a href="https://raisingchildren.net.au/_media/glossary/wholegrain" class="glossary">wholegrain</a> foods like wholemeal bread and brown rice and <a href="https://raisingchildren.net.au/_media/glossary/fortified2" class="glossary">fortified</a> breakfast cereals</li><li>fish and meat</li><li>yeast extracts like Vegemite.</li></ul><p>Vitamin B1 helps release energy from foods, so that the nervous system and muscles work properly.</p><p><strong>Vitamin B2 (riboflavin)</strong><br /> You get vitamin B2 from:</p><ul><li>mushrooms</li><li>almonds</li><li>breakfast cereals fortified with B2 and wholemeal flour and bread</li><li>meat and eggs</li><li>milk, yoghurt, cheese and dairy alternatives fortified with B2</li><li>yeast extracts like Vegemite.</li></ul><p>Vitamin B2 helps release energy from food.</p><p><strong>Vitamin B3 (niacin)</strong><br /> You get vitamin B3 from:</p><ul><li>legumes</li><li>peanuts</li><li>lean meat, fish and chicken</li><li>yeast extracts like Vegemite.</li></ul><p>Vitamin B3 helps release energy from food.</p><p><strong>Vitamin B6 (pyridoxine)</strong><br /> You get vitamin B6 from:</p><ul><li>vegetables and soybeans</li><li>fruit</li><li>nuts</li><li>wholegrain foods and breakfast cereals fortified with B6</li><li>lean meat and fish.</li></ul><p>Vitamin B6 releases energy from protein and helps with red blood cell production and brain function.</p><p><strong>Vitamin B12 (cobalamin)</strong><br /> You get vitamin B12 from:</p><ul><li>meat, fish and eggs</li><li>breakfast cereals fortified with B12</li><li>milk and dairy alternatives fortified with B12.</li></ul><p>Vitamin B12 helps with red blood cell production and promotes growth.</p><p><strong>Vitamin C (ascorbic acid)</strong><br /> You get vitamin C from:</p><ul><li>vegetables, especially capsicums, broccoli and potatoes</li><li>fruits, especially citrus fruit, berries, mango and kiwi fruit.</li></ul><p>Vitamin C builds <a href="https://raisingchildren.net.au/_media/glossary/collagen" class="glossary">collagen</a>. It helps you fight infections and absorb iron from food. It also keeps teeth, bones and gums healthy. You can lose some vitamin C when you cook food.</p><p><strong>Vitamin D</strong><br /> Our bodies make most of the <a href="https://raisingchildren.net.au/teens/healthy-lifestyle/nutrients/vitamin-d">vitamin D</a> we need when we get enough direct sunlight on our skin. There are also small amounts in:</p><ul><li>mushrooms grown outdoors or in UV light</li><li>oily fish, fish liver oils and egg yolks</li><li>butter and margarine.</li></ul><p>Vitamin D helps you absorb calcium to keep bones strong and healthy.</p><p><strong>Vitamin E</strong><br /> You get vitamin E from:</p><ul><li>sunflower and canola oils</li><li>seeds and nuts</li><li>eggs</li><li>wheat germ</li><li>margarines high in unsaturated fat.</li></ul><p>Vitamin E boosts your immune system and helps with the development of healthy skin and eyes.</p><p><strong>Vitamin K</strong><br /> You get vitamin K from:</p><ul><li>green leafy vegetables like broccoli, kale, cabbage and spinach</li><li>green beans</li><li>eggs</li><li>cheese.</li></ul><p>The healthy bacteria in your gut also make vitamin K.</p><p>Vitamin K is important for helping your blood to clot.</p><p><strong>Folate (folic acid)</strong><br /> You get folate from:</p><ul><li>green leafy vegetables like bok choy, broccoli, spinach and brussel sprouts</li><li>legumes</li><li>liver</li><li>bread made from wheat flour (except organic bread), wholegrain foods and breakfast cereals fortified with folic acid.</li></ul><p>Folate helps you absorb protein and form new blood cells and DNA. Getting enough folate before and during pregnancy can help prevent <a href="https://raisingchildren.net.au/guides/a-z-health-reference/neural-tube-defects">neural tube defects</a>. Cooking and processing food – for example, as part of the canning process – reduces the amount of folate in food.</p><h2>Minerals and how to get them</h2><p>Here’s a list of the minerals you and your family need and how to get them.</p><p><strong>Calcium</strong><br /> You get calcium from:</p><ul><li>some green leafy vegetables, like kale and bok choy</li><li>fish with edible bones like sardines</li><li>tofu</li><li>dairy products like milk, cheese and yoghurt, and dairy alternatives fortified with calcium.</li></ul><p>Calcium builds strong bones and teeth.</p><p><strong>Iodine</strong><br /> You get <a href="https://raisingchildren.net.au/babies/breastfeeding-bottle-feeding-solids/nutrients/iodine">iodine</a> from:</p><ul><li>vegetables grown in iodine-rich soil</li><li>seafood</li><li>iodised salt</li><li>bread made with iodised salt.</li></ul><p>Most bakery and supermarket bread is made with iodised salt, which will give most people enough iodine. Iodine is essential for healthy growth and tissue development, and it helps to control the ways your cells make energy and use oxygen. Pregnant women and breastfeeding birthing mothers need higher levels of iodine compared to other people.</p><p><strong>Iron</strong><br /> You get iron from:</p><ul><li>dried legumes</li><li>meat, liver, chicken, seafood and egg yolks</li><li>iron-fortified breakfast cereal.</li></ul><p>Iron is especially important for brain function and red blood cell production, and it helps carry oxygen around the body.</p><p><strong>Zinc</strong><br /> You get zinc from:</p><ul><li>legumes</li><li>seeds</li><li>almonds</li><li>wholegrain foods</li><li>meat, chicken and seafood</li><li>tofu</li><li>milk, yoghurt and some dairy alternatives like coconut milk or those fortified with zinc.</li></ul><p>Zinc helps with growth, wound healing and immune system function.</p><p><strong>Other essential minerals</strong> include chromium, copper, fluoride, magnesium, manganese, molybdenum, potassium, phosphorus, selenium and sodium.</p><p class="asterisk">Fruit and vegetables are vital sources of vitamins and minerals. You might like to read about <a href="https://raisingchildren.net.au/babies/breastfeeding-bottle-feeding-solids/healthy-eating-habits/vegetables">encouraging your child to eat vegetables</a> or see our <a href="https://raisingchildren.net.au/toddlers/parenting-in-pictures/fruit-vegies">illustrated guide to child-friendly fruit and vegetables</a>.</p><h2>Vitamin deficiencies</h2><p>If your child isn’t getting enough vitamins or minerals over a period of time, this is often called a ‘deficiency’.</p><p>These are the most common vitamin deficiencies in children in Australia.</p><p><strong>Vitamin B12</strong><br /> Vitamin B12 deficiency can lead to a form of <a href="https://raisingchildren.net.au/guides/a-z-health-reference/anaemia">anaemia</a>. Families eating a <a href="https://raisingchildren.net.au/_media/glossary/vegan" class="glossary">vegan diet</a> can find it hard to get enough vitamin B12 from fortified foods. They might need to take supplements.</p><p><strong>Vitamin D</strong><br /> Many children in Australia have low levels of vitamin D, especially children living in Adelaide, Hobart or Melbourne in winter.</p><p>Serious vitamin D deficiency can cause <a href="https://raisingchildren.net.au/_media/glossary/rickets" class="glossary">rickets</a>, delayed motor development, muscle weakness, aches and pains, <a href="https://raisingchildren.net.au/_media/glossary/fracture" class="glossary">fractures</a> and bone disease.</p><h2>Mineral deficiencies</h2><p>These are the most common mineral deficiencies in children in Australia.</p><p><strong>Calcium</strong><br /> Not enough calcium can lead to rickets, <a href="https://raisingchildren.net.au/_media/glossary/osteopenia" class="glossary">osteopenia</a> and <a href="https://raisingchildren.net.au/_media/glossary/osteoporosis" class="glossary">osteoporosis</a>.</p><p><strong>Iron</strong><br /> Children are at higher risk of iron deficiency than adults, mainly because children need more iron when they go through growth spurts. They might also be low in iron if they:</p><ul><li>eat a vegan or vegetarian diet</li><li>eat a limited variety of foods</li><li>have <a href="https://raisingchildren.net.au/guides/a-z-health-reference/coeliac-disease">coeliac disease</a></li><li>have <a href="https://raisingchildren.net.au/_media/glossary/gastrointestinal" class="glossary">gastrointestinal</a> blood loss</li><li>have frequent, prolonged or very heavy <a href="https://raisingchildren.net.au/teens/development/periods-hygiene/periods">periods</a> in adolescence.</li></ul><p>Iron deficiency can cause tiredness, lack of concentration and paler skin than usual.</p><p>A severe iron deficiency is called iron deficiency anaemia. A small number of toddlers have iron deficiency anaemia, which can have long-term effects on brain development.</p><p><strong>Zinc</strong><br /> Toddlers who have a limited diet for a long time, as well as those who eat a vegan or vegetarian diet, are most likely to not get enough zinc. A zinc deficiency can slow down your child’s growth.</p><h2>Diverse diets and how they might affect vitamin and mineral intake</h2><p>If your child has a restricted diet, you might need to be careful about making sure your child gets enough vitamins and minerals.</p><p>For example, <a href="https://raisingchildren.net.au/teens/healthy-lifestyle/healthy-eating-habits/vegetarian-diets-teenagers">vegetarian diets and vegan diets</a> can make it difficult to get enough iron. <a href="https://raisingchildren.net.au/babies/health-daily-care/allergy-intolerance/food-allergies">Food allergies</a> and <a href="https://raisingchildren.net.au/babies/health-daily-care/allergy-intolerance/food-intolerances">food intolerances</a> can make it harder for your child to get enough nutrients like calcium. With careful planning and professional advice, you can get enough of these nutrients into your child’s diet.</p><p>For children with a <strong>chronic condition</strong> that affects how they absorb food – like coeliac disease or <a href="https://raisingchildren.net.au/guides/a-z-health-reference/cystic-fibrosis">cystic fibrosis</a> – the vitamins and minerals in a standard healthy diet might not be enough. Your <a href="https://raisingchildren.net.au/guides/a-z-health-reference/general-practitioner">GP</a> or a <a href="https://raisingchildren.net.au/guides/a-z-health-reference/dietitian">dietitian</a> can help you work out what you need to do.</p><p>Children who eat a lot of <strong>‘sometimes’ foods</strong>, like sweet drinks, chips and cakes, might fill up on those and not have enough room for the foods that give them essential vitamins and minerals. You could try limiting sometimes foods to special occasions.</p><p class="asterisk">Always talk to your GP, a dietitian or another health professional if you’re concerned about your own diet, especially if you think you might be low on key nutrients for breastfeeding. A health professional can help you work out what you need, especially if you have a restricted diet.</p><h2>Vitamin and mineral supplements</h2><p>Our bodies need only tiny amounts of vitamins and minerals. <strong>Large amounts of some vitamins or minerals can be dangerous.</strong> For example, vitamin A builds up in the body if it’s taken in excessive amounts.</p><p>If you think your child is low on some vitamins or minerals and can’t eat more food containing these vitamins and minerals, <strong>see your GP or a dietitian for advice</strong>. They might suggest that your child takes an appropriate supplement.</p><p>Unless your GP prescribes a specific nutrient, it’s generally best to take a supplement that includes a range of nutrients and is suitable for your child’s age.</p><p class="asterisk">Vitamin and mineral supplements can interact with medicines. If your child takes a vitamin or mineral supplement and your GP is prescribing medicine for your child, it’s important to let the GP know about the supplement.</p> </div> </div> </div> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/inpage-nav.js"></script> <script>sq.inpageNav('inpage-nav', {show: true, counter: '1162', title: 'T24gdGhpcyBwYWdlOg=='});</script> <script>console['info']("Begin 'transducer' for container #page-rating-23295 pageRating")</script><script>console['info']("Complete 'transducer' for container #page-rating-23295 pageRating")</script><script>console['info']("Begin 'pageRating' for container #page-rating-23295")</script><!-- Begin container id #page-rating-23295 'pageRating' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/page-rating.js?v=2023-04-24T035717.998Z" id="pageRating"></script></div><div id="page-rating-23295" class="page-rating container-template"></div><script>try {sq.pageRating('page-rating-23295', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"page-rating","namespace":"page-rating","assetid":"23295","id":"page-rating-23295","camel":"pageRating","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/page-rating.js","containerType":"div","pageId":"32873","pageUrl":"https://raisingchildren.net.au/babies/breastfeeding-bottle-feeding-solids/nutrients/vitamins-minerals","message":"VGhhbmtzIGZvciB5b3VyIGZlZWRiYWNr"}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `pageRating` with id `page-rating-23295`") }</script></div> <!-- End container id #page-rating-23295 'pageRating' --> <script>console['info']("Complete 'pageRating' for container #page-rating-23295")</script><script>console['info']("Begin 'transducer' for container #articleUtilities-23326 articleUtilities")</script><script>console['info']("Complete 'transducer' for container #articleUtilities-23326 articleUtilities")</script><script>console['info']("Begin 'articleUtilities' for container #articleUtilities-23326")</script><!-- Begin container id #articleUtilities-23326 'articleUtilities' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/article-utilities.js?v=2023-04-24T035717.998Z" id="articleUtilities"></script></div><div id="articleUtilities-23326" class="articleUtilities container-template"></div><script>try {sq.articleUtilities('articleUtilities-23326', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"articleUtilities","namespace":"articleUtilities","assetid":"23326","id":"articleUtilities-23326","camel":"articleUtilities","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/article-utilities.js","containerType":"div","groupID":"accordion-group-23326","lastUpdate":"11-09-2023","title":"","items":[{"title":"Tell us what you think","content":"eyJhc3NldGlkIjoiMjMzMTYiLCJ0eXBlX2NvZGUiOiJmb3JtX2VtYWlsIiwidmVyc2lvbiI6IjAuNi4xIiwibmFtZSI6IkZvcm0gQ29udGVudHMiLCJzaG9ydF9uYW1lIjoiRm9ybSBDb250ZW50cyIsImV4dGVybmFsX2lkIjpmYWxzZSwic3RhdHVzIjoiMTYiLCJsYW5ndWFnZXMiOiJlbiIsImNoYXJzZXQiOiJ1dGYtOCIsImNyZWF0ZWQiOiIyMDE4LTA3LTAzIDE1OjIzOjM5IiwiY3JlYXRlZF91c2VyaWQiOiIxMyIsInVwZGF0ZWQiOiIyMDI0LTAxLTEwIDA5OjQ3OjQ2IiwidXBkYXRlZF91c2VyaWQiOiIxNDc3NyIsInB1Ymxpc2hlZCI6IjIwMjMtMTItMjEgMTU6MzA6MDciLCJwdWJsaXNoZWRfdXNlcmlkIjoiMTQ3NzciLCJzdGF0dXNfY2hhbmdlZCI6IjIwMjMtMTItMjEgMTU6MzA6MDciLCJzdGF0dXNfY2hhbmdlZF91c2VyaWQiOiIxNDc3NyIsInRodW1ibmFpbCI6IiIsImF0dHJpYnV0ZXMiOnsic3VibWl0X2J1dHRvbiI6eyJhdHRyaWQiOiIxNzEyIiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlN1Ym1pdCIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlc2V0X2J1dHRvbiI6eyJhdHRyaWQiOiIxNzQ5IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlJlc2V0IiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwicXVlc3Rpb25fY29sX3dpZHRoIjp7ImF0dHJpZCI6IjE3NDQiLCJ0eXBlIjoiaHRtbF93aWR0aCIsInZhbHVlIjoiNDAlIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImFuc3dlcl9jb2xfd2lkdGgiOnsiYXR0cmlkIjoiMTY5NCIsInR5cGUiOiJodG1sX3dpZHRoIiwidmFsdWUiOiI2MCUiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiZm9ybV93aWR0aCI6eyJhdHRyaWQiOiIxNzY0IiwidHlwZSI6Imh0bWxfd2lkdGgiLCJ2YWx1ZSI6IjEwMCUiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic29ydF9vcmRlciI6eyJhdHRyaWQiOiIxNzMzIiwidHlwZSI6InNlcmlhbGlzZSIsInZhbHVlIjpbIjIzMzE2OnExIiwiMjMzMTY6cTIiLCIyMzMxNjpxMyIsIjIzMzE2OnE0IiwiMjMzMTY6cTUiLCIyMzMxNjpxNiJdLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwidXNlX2JvZHljb3B5X3VuYXR0YWNoZWQiOnsiYXR0cmlkIjoiMTcyMSIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwidXNlX2NsaWVudF9zaWRlIjp7ImF0dHJpZCI6IjE3MjYiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sIm5vdGVfc2l6ZSI6eyJhdHRyaWQiOiIxNjgzIiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IjgwJSIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtdWx0aV9wYWdlIjp7ImF0dHJpZCI6IjE3MTQiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sIm5leHRfYnV0dG9uIjp7ImF0dHJpZCI6IjE2ODUiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiTmV4dCBQYWdlIiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwicHJldmlvdXNfYnV0dG9uIjp7ImF0dHJpZCI6IjE3MDMiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiUHJldmlvdXMgUGFnZSIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInNhdmVfYnV0dG9uIjp7ImF0dHJpZCI6IjE3MDIiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwic2F2ZV9jb25maXJtYXRpb25fbWVzc2FnZSI6eyJhdHRyaWQiOiIxNzAwIiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlNhdmUiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjb25maXJtYXRpb25fcGFnZV9uYW1lIjp7ImF0dHJpZCI6IjE3MDkiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiQ29uZmlybWF0aW9uIiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwicGFnZV9saXN0X2Zvcm1hdCI6eyJhdHRyaWQiOiIxNzU3IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IiVwYWdlX251bWJlciUiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic3VibWlzc2lvbl93YXJuaW5nX3RpbWUiOnsiYXR0cmlkIjoiMTcyMCIsInR5cGUiOiJkdXJhdGlvbiIsInZhbHVlIjowLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwid2FybmluZ19lbWFpbF9mb3JtYXQiOnsiYXR0cmlkIjoiMTc3MyIsInR5cGUiOiJlbWFpbF9mb3JtYXQiLCJ2YWx1ZSI6eyJ0byI6W10sInRvX2Fzc2V0aWRzIjpbXSwiZnJvbSI6IiIsInJlcGx5X3RvIjoiIiwic3ViamVjdCI6IiIsImh0bWxfZm9ybWF0IjoiIiwidGV4dF9mb3JtYXQiOiIiLCJpbmNfYXR0YWNobWVudHMiOltdLCJhdHRhY2htZW50cyI6W10sImFzc2V0X3RvX3NlbmQiOiIiLCJkZXNpZ25fdG9fYXBwbHkiOiIiLCJsYXlvdXRfdG9fYXBwbHkiOiIifSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sIndhcm5pbmdfZW1haWxfZm9ybWF0X3B1YmxpYyI6eyJhdHRyaWQiOiIxNjk4IiwidHlwZSI6ImVtYWlsX2Zvcm1hdCIsInZhbHVlIjp7InRvIjpbXSwidG9fYXNzZXRpZHMiOltdLCJmcm9tIjoiIiwicmVwbHlfdG8iOiIiLCJzdWJqZWN0IjoiIiwiaHRtbF9mb3JtYXQiOiIiLCJ0ZXh0X2Zvcm1hdCI6IiIsImluY19hdHRhY2htZW50cyI6W10sImF0dGFjaG1lbnRzIjpbXSwiYXNzZXRfdG9fc2VuZCI6IiIsImRlc2lnbl90b19hcHBseSI6IiIsImxheW91dF90b19hcHBseSI6IiJ9LCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV91c2VfY29sb3VycyI6eyJhdHRyaWQiOiIxNzMxIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2JnY29sb3VyIjp7ImF0dHJpZCI6IjE3MDgiLCJ0eXBlIjoiY29sb3VyIiwidmFsdWUiOiIjRkZGRkZGIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfdHRmIjp7ImF0dHJpZCI6IjE2ODgiLCJ0eXBlIjoiYXNzZXRpZCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfZm9udF9zaXplIjp7ImF0dHJpZCI6IjE3NjgiLCJ0eXBlIjoiaW50IiwidmFsdWUiOiIyMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX21pbl9hbmdsZSI6eyJhdHRyaWQiOiIxNzIzIiwidHlwZSI6ImludCIsInZhbHVlIjoiLTIwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfbWF4X2FuZ2xlIjp7ImF0dHJpZCI6IjE3MzUiLCJ0eXBlIjoiaW50IiwidmFsdWUiOiIyMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX3hfc3RhcnQiOnsiYXR0cmlkIjoiMTcxNyIsInR5cGUiOiJpbnQiLCJ2YWx1ZSI6IjEwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfbWluX2Rpc3RhbmNlIjp7ImF0dHJpZCI6IjE3NDEiLCJ0eXBlIjoiaW50IiwidmFsdWUiOiIxMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX21heF9kaXN0YW5jZSI6eyJhdHRyaWQiOiIxNjkzIiwidHlwZSI6ImludCIsInZhbHVlIjoiMjAiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9pbmNsdWRlX251bWJlcnMiOnsiYXR0cmlkIjoiMTcxMCIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicHJvdmlkZV9hY2Nlc3NpYmxlX2NhcHRjaGEiOnsiYXR0cmlkIjoiMTc2NyIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9pbnZhbGlkX2Vycm9yX21lc3NhZ2UiOnsiYXR0cmlkIjoiMTc2NiIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJTZWN1cml0eSBLZXkgSW5jb3JyZWN0IiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9mb3JtX2ludmFsaWRfZXJyb3JfbWVzc2FnZSI6eyJhdHRyaWQiOiIxNzU0IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlZhbGlkIENBUFRDSEEgaXMgcmVxdWlyZWQsIGJ1dCBub25lIGlzIGZvdW5kIGluIHRoaXMgZm9ybSBzdWJtaXNzaW9uIiwiaXNfY29udGV4dGFibGUiOnRydWUsInVzZV9kZWZhdWx0Ijp0cnVlfSwibW9sbG9tX3NwYW1fc3VibWlzc2lvbl90ZXh0Ijp7ImF0dHJpZCI6IjE3NDYiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiVGhpcyBzdWJtaXNzaW9uIGxvb2tzIGxpa2UgYSBzcGFtLiBDYW5ub3QgYWNjZXB0IHRoaXMgc3VibWlzc2lvbi4iLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwibW9sbG9tX2NhcHRjaGFfaW5jb3JyZWN0X3RleHQiOnsiYXR0cmlkIjoiMTczNyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJJbmNvcnJlY3Qgc2VjdXJpdHkga2V5LiBQbGVhc2UgdHJ5IGFnYWluLiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtb2xsb21fY2FwdGNoYV9yZWdlbl9saW5rX3RleHQiOnsiYXR0cmlkIjoiMTY5MSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJSZWdlbmVyYXRlIHNlY3VyaXR5IGtleSIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfYWNjZXNzaWJsZV9mb3JtYXQiOnsiYXR0cmlkIjoiMTY4NyIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOnRydWUsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZXF1aXJlZF9maWVsZF9tYXJrIjp7ImF0dHJpZCI6IjE3NDIiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiPGFiYnIgY2xhc3M9XCJzcS1mb3JtLXJlcXVpcmVkLWZpZWxkXCIgdGl0bGU9XCJyZXF1aXJlZFwiPio8XC9hYmJyPiIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlcXVpcmVkX2ZpZWxkX25vdGUiOnsiYXR0cmlkIjoiMTc1MyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJSZXF1aXJlZCBmaWVsZHMgYXJlIG1hcmtlZCB3aXRoIGFuIGFzdGVyaXNrICg8YWJiciBjbGFzcz1cInNxLWZvcm0tcmVxdWlyZWQtZmllbGRcIiB0aXRsZT1cInJlcXVpcmVkXCI+KjxcL2FiYnI+KS4iLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwdWJsaWNfYXV0aF9lcnJvcl9tZXNzYWdlIjp7ImF0dHJpZCI6IjE3MjIiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInB1YmxpY19lbWFpbF9ub3RpZmljYXRpb25fZm9ybWF0Ijp7ImF0dHJpZCI6IjE3NzUiLCJ0eXBlIjoiZW1haWxfZm9ybWF0IiwidmFsdWUiOnsiaHRtbF9mb3JtYXQiOiI8cD48XC9wPiIsInRleHRfZm9ybWF0IjoiIiwidG8iOltdLCJ0b19hc3NldGlkcyI6W10sImZyb20iOiIiLCJyZXBseV90byI6IiIsInN1YmplY3QiOiIiLCJpbmNfYXR0YWNobWVudHMiOmZhbHNlLCJhc3NldF90b19zZW5kIjoiMCIsImRlc2lnbl90b19hcHBseSI6IjAiLCJsYXlvdXRfdG9fYXBwbHkiOiIwIiwic2VuZF9tYWlsX3RvX3R5cGUiOjAsImF0dGFjaG1lbnRzIjpbXX0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZWNhcHRjaGFfdGhlbWUiOnsiYXR0cmlkIjoiMTczMiIsInR5cGUiOiJzZWxlY3Rpb24iLCJ2YWx1ZSI6InJlZCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZWNhcHRjaGFfZXJyb3JfbWVzc2FnZSI6eyJhdHRyaWQiOiIxNzE1IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfaGNhcHRjaGEiOnsiYXR0cmlkIjoiNDk1MiIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiaGNhcHRjaGFfdGhlbWUiOnsiYXR0cmlkIjoiNDk1MCIsInR5cGUiOiJzZWxlY3Rpb24iLCJ2YWx1ZSI6ImxpZ2h0IiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImhjYXB0Y2hhX3NpemUiOnsiYXR0cmlkIjoiNDk1MSIsInR5cGUiOiJzZWxlY3Rpb24iLCJ2YWx1ZSI6Im5vcm1hbCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJoY2FwdGNoYV9lcnJvcl9tZXNzYWdlIjp7ImF0dHJpZCI6IjQ5NTMiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImhvbmV5cG90X25hbWUiOnsiYXR0cmlkIjoiMTcyOCIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJkZXRhaWxzIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImhvbmV5cG90X2lkIjp7ImF0dHJpZCI6IjE3NDUiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiZGV0YWlscyIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJob25leXBvdF9jbGFzcyI6eyJhdHRyaWQiOiIxNzA1IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6ImhpZGRlbiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJob25leXBvdF9lcnJvcl9tZXNzYWdlIjp7ImF0dHJpZCI6IjE3MzgiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiRXJyb3Igc3VibWl0dGluZyB0aGlzIGZpZWxkIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY29yZF9pcF9hZGRyZXNzIjp7ImF0dHJpZCI6IjQ4MzgiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjp0cnVlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVjZWlwdF9lbWFpbHNfZm9ybWF0Ijp7ImF0dHJpZCI6IjE3NzciLCJ0eXBlIjoiZW1haWxfZm9ybWF0IiwidmFsdWUiOiJhOjEzOntzOjExOlwiaHRtbF9mb3JtYXRcIjtzOjExNzQ6XCI8cCBzdHlsZT1cImJvcmRlcjogMHB4XCI+RGVhciAlcmVzcG9uc2VfMjMzMTZfcTElLDxcL3A+PHA+VGhhbmtzIGZvciBnZXR0aW5nIGluIHRvdWNoLiBXZSB2YWx1ZSB5b3VyIGNvbW1lbnRzIGFuZCBzdWdnZXN0aW9ucyAmbmRhc2g7IHRoZXkgcGxheSBhbiBpbXBvcnRhbnQgcGFydCBpbiB0aGUgb25nb2luZyBkZXZlbG9wbWVudCBvZiByYWlzaW5nY2hpbGRyZW4ubmV0LmF1LjxcL3A+PHA+QWx0aG91Z2ggd2UgcmVhZCBldmVyeSBtZXNzYWdlIHdlIHJlY2VpdmUsIHdlIGNhbiZyc3F1bzt0IGFsd2F5cyByZXNwb25kIHRvIGFsbCBmZWVkYmFjayBpbmRpdmlkdWFsbHkuPFwvcD48cD48c3Ryb25nPldvcnJpZWQgYWJvdXQgeW91ciBjaGlsZCBvciBuZWVkIHNvbWUgc3VwcG9ydD88XC9zdHJvbmc+PFwvcD48cD5yYWlzaW5nY2hpbGRyZW4ubmV0LmF1IHByb3ZpZGVzIGdlbmVyYWwgaW5mb3JtYXRpb24gb25seS4gV2UgZG9uJnJzcXVvO3QgcHJvdmlkZSBwZXJzb25hbGlzZWQgYWR2aWNlLjxcL3A+PHA+SWYgeW91JnJzcXVvO3JlIGNvbmNlcm5lZCBhYm91dCBhIHBhcnRpY3VsYXIgaXNzdWUgZm9yIHlvdSBvciB5b3VyIGNoaWxkLCBpdCZyc3F1bztzIGJlc3QgdG8gc2VlayBhZHZpY2UgZnJvbSBhIHF1YWxpZmllZCBwcm9mZXNzaW9uYWwgb3Igc2VydmljZS48XC9wPjxwPllvdSBjYW4gY2FsbCB5b3VyIDxhIGhyZWY9XCJodHRwczpcL1wvcmFpc2luZ2NoaWxkcmVuLm5ldC5hdVwvZ3Jvd24tdXBzXC9zZXJ2aWNlcy1zdXBwb3J0XC9zZXJ2aWNlcy1mYW1pbGllc1wvaGVscGxpbmVzXCI+QXVzdHJhbGlhbiBzdGF0ZSBvciB0ZXJyaXRvcnkgcGFyZW50IGhlbHBsaW5lIG9yIGhvdGxpbmU8XC9hPi48XC9wPjxwPjxzdHJvbmc+SW5mb3JtYXRpb24gb24gY29udGVudCByZXVzZSBhbmQgbGljZW5zaW5nPFwvc3Ryb25nPjxcL3A+PHA+cmFpc2luZ2NoaWxkcmVuLm5ldC5hdSA8YSBocmVmPVwiaHR0cHM6XC9cL3JhaXNpbmdjaGlsZHJlbi5uZXQuYXVcL2Fib3V0LXVzXC9tZWRpYVwvRkFRcy1hYm91dC1jb250ZW50LXJldXNlXCI+ZmVhdHVyZXMmbmJzcDtmcmVxdWVudGx5IGFza2VkIHF1ZXN0aW9uczxcL2E+IG9uIGNvbnRlbnQgcmV1c2UgYW5kIGxpY2Vuc2luZy48XC9wPjxwPklmIHdlIHJlcXVpcmUgZnVydGhlciBpbmZvcm1hdGlvbiBhYm91dCB5b3VyIGNvbW1lbnRzIHdlJnJzcXVvO2xsIGJlIGluIHRvdWNoLjxcL3A+PHA+S2luZCByZWdhcmRzLCA8YnIgXC8+VGhlIHJhaXNpbmdjaGlsZHJlbi5uZXQuYXUgdGVhbTxcL3A+XCI7czoxMTpcInRleHRfZm9ybWF0XCI7czoxMDAyOlwiVGhhbmtzIGZvciBnZXR0aW5nIGluIHRvdWNoLiBXZSB2YWx1ZSB5b3VyIGNvbW1lbnRzIGFuZCBzdWdnZXN0aW9ucyBcdTIwMTMgdGhleSBwbGF5IGFuIGltcG9ydGFudCBwYXJ0IGluIHRoZSBvbmdvaW5nIGRldmVsb3BtZW50IG9mIHJhaXNpbmdjaGlsZHJlbi5uZXQuYXUuXHJcblxyXG5Ob3RlLCB0aGUgZmVlZGJhY2sgbGluZSBpcyBjbG9zZWQgZnJvbSAyMlwvMTJcLzIzIHVudGlsIDEwXC8xXC8yNCBhbmQgd2Ugd29uXHUyMDE5dCBiZSByZXNwb25kaW5nIHRvIGVtYWlscyBkdXJpbmcgdGhpcyBwZXJpb2QuXHJcblxyXG5BbHRob3VnaCB3ZSByZWFkIGV2ZXJ5IG1lc3NhZ2Ugd2UgcmVjZWl2ZSwgd2UgY2FuXHUyMDE5dCBhbHdheXMgcmVzcG9uZCB0byBhbGwgZmVlZGJhY2sgaW5kaXZpZHVhbGx5LiBcclxuXHJcbldvcnJpZWQgYWJvdXQgeW91ciBjaGlsZD9cclxucmFpc2luZ2NoaWxkcmVuLm5ldC5hdSBwcm92aWRlcyBnZW5lcmFsIGluZm9ybWF0aW9uIG9ubHkuIFdlIGNhblx1MjAxOXQgcHJvdmlkZSBwZXJzb25hbGlzZWQgYWR2aWNlLiBJZiB5b3UgaGF2ZSBhIHBhcnRpY3VsYXIgaXNzdWUgeW91XHUyMDE5cmUgY29uY2VybmVkIGFib3V0LCBpdFx1MjAxOXMgYmVzdCB0byBzZWVrIGFkdmljZSBmcm9tIGEgcXVhbGlmaWVkIHByb2Zlc3Npb25hbC5cclxuXHJcbk5lZWQgc29tZSBzdXBwb3J0P1xyXG5JZiB5b3UgbmVlZCBwYXJlbnRpbmcgYWR2aWNlIG9yIHN1cHBvcnQsIHlvdSBjYW4gY2FsbCB5b3VyIEF1c3RyYWxpYW4gc3RhdGUgb3IgdGVycml0b3J5IHBhcmVudGluZyBoZWxwbGluZS4gWW91IGNhbiBmaW5kIHRoZSBudW1iZXJzIGhlcmU6IGh0dHBzOlwvXC9yYWlzaW5nY2hpbGRyZW4ubmV0LmF1XC9ncm93bi11cHNcL3NlcnZpY2VzLXN1cHBvcnRcL3NlcnZpY2VzLWZhbWlsaWVzXC9oZWxwbGluZXMuXHJcblxyXG5JZiB3ZSByZXF1aXJlIGZ1cnRoZXIgaW5mb3JtYXRpb24gYWJvdXQgeW91ciBjb21tZW50cyB3ZVx1MjAxOWxsIGJlIGluIHRvdWNoLlxyXG5cclxuS2luZCByZWdhcmRzLFxyXG5UaGUgcmFpc2luZ2NoaWxkcmVuLm5ldC5hdSB0ZWFtXHRcIjtzOjI6XCJ0b1wiO2E6MDp7fXM6MTE6XCJ0b19hc3NldGlkc1wiO2E6MDp7fXM6NDpcImZyb21cIjtzOjI3Olwibm9yZXBseUBwcmMtd2ViLnNxdWl6LmNsb3VkXCI7czo4OlwicmVwbHlfdG9cIjtzOjMwOlwicmNuZmVlZGJhY2tAcGFyZW50aW5ncmMub3JnLmF1XCI7czo3Olwic3ViamVjdFwiO3M6NDQ6XCJUaGFua3MgZm9yIGNvbnRhY3RpbmcgcmFpc2luZ2NoaWxkcmVuLm5ldC5hdVwiO3M6MTU6XCJpbmNfYXR0YWNobWVudHNcIjtiOjA7czoxMzpcImFzc2V0X3RvX3NlbmRcIjtzOjE6XCIwXCI7czoxNTpcImRlc2lnbl90b19hcHBseVwiO3M6MTpcIjBcIjtzOjE1OlwibGF5b3V0X3RvX2FwcGx5XCI7czoxOlwiMFwiO3M6MTc6XCJzZW5kX21haWxfdG9fdHlwZVwiO2k6MDtzOjExOlwiYXR0YWNobWVudHNcIjthOjA6e319IiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY2VpcHRfZmllbGQiOnsiYXR0cmlkIjoiMTc3OCIsInR5cGUiOiJhc3NldGlkIiwidmFsdWUiOiIyMzMxNjpxMyIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdGFmX2Zvcm1hdCI6eyJhdHRyaWQiOiIxNzgxIiwidHlwZSI6ImVtYWlsX2Zvcm1hdCIsInZhbHVlIjp7Imh0bWxfZm9ybWF0IjoiPHA+PFwvcD4iLCJ0ZXh0X2Zvcm1hdCI6IiIsInRvIjpbXSwidG9fYXNzZXRpZHMiOltdLCJmcm9tIjoiIiwicmVwbHlfdG8iOiIiLCJzdWJqZWN0IjoiIiwiaW5jX2F0dGFjaG1lbnRzIjpmYWxzZSwiYXNzZXRfdG9fc2VuZCI6IjAiLCJkZXNpZ25fdG9fYXBwbHkiOiIwIiwibGF5b3V0X3RvX2FwcGx5IjoiMCIsInNlbmRfbWFpbF90b190eXBlIjowLCJhdHRhY2htZW50cyI6W119LCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic2VsZWN0aXZlX2VtYWlscyI6eyJhdHRyaWQiOiIxNzgyIiwidHlwZSI6InNlcmlhbGlzZSIsInZhbHVlIjpbXSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImFjdGlvbnMiOnsiYXR0cmlkIjoiMTc4MyIsInR5cGUiOiJzZXJpYWxpc2UiLCJ2YWx1ZSI6W10sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJsb2ciOnsiYXR0cmlkIjoiMTc4NCIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVjZWlwdF9lbWFpbF9hdHRhY2htZW50cyI6eyJhdHRyaWQiOiIxNzg1IiwidHlwZSI6ImR5bmFtaWNfZmlsZSIsInZhbHVlIjpbXSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY2lwaWVudF9lbWFpbF9hdHRhY2htZW50cyI6eyJhdHRyaWQiOiIxNzg2IiwidHlwZSI6ImR5bmFtaWNfZmlsZSIsInZhbHVlIjpbXSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInN0YWZfZW1haWxfYXR0YWNobWVudHMiOnsiYXR0cmlkIjoiMTc4NyIsInR5cGUiOiJkeW5hbWljX2ZpbGUiLCJ2YWx1ZSI6W10sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJuZXh0X3F1ZXN0aW9uaWQiOnsiYXR0cmlkIjoiMTcyNSIsInR5cGUiOiJpbnQiLCJ2YWx1ZSI6IjkiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicXVlc3Rpb25zIjp7ImF0dHJpZCI6IjE3NzEiLCJ0eXBlIjoic2VyaWFsaXNlIiwidmFsdWUiOnsiMSI6eyJxdWVzdGlvbl90eXBlX2NvZGUiOiJmb3JtX3F1ZXN0aW9uX3R5cGVfdGV4dCIsImF0dHJpYnV0ZXMiOnsiaXNfcmVxdWlyZWQiOnRydWUsIm5hbWUiOiJGaXJzdCBOYW1lIiwidmFsaWRhdGlvbl9jb25kaXRpb24iOltdLCJydWxlcyI6W10sImN1c3RfcmVxdWlyZWRfZXJyb3IiOiJQbGVhc2UgYWRkIGEgZmlyc3QgbmFtZSJ9fSwiMiI6eyJxdWVzdGlvbl90eXBlX2NvZGUiOiJmb3JtX3F1ZXN0aW9uX3R5cGVfdGV4dCIsImF0dHJpYnV0ZXMiOnsiaXNfcmVxdWlyZWQiOnRydWUsIm5hbWUiOiJMYXN0IE5hbWUiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwiY3VzdF9yZXF1aXJlZF9lcnJvciI6IlBsZWFzZSBhZGQgYSBsYXN0IG5hbWUifX0sIjMiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX2VtYWlsX2FkZHJlc3MiLCJhdHRyaWJ1dGVzIjp7InRleHRfdHlwZSI6ImVtYWlsIiwiaXNfcmVxdWlyZWQiOnRydWUsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJjdXN0X3JlcXVpcmVkX2Vycm9yIjoiUGxlYXNlIGFkZCBhbiBlbWFpbCBhZGRyZXNzIiwibmFtZSI6IkVtYWlsIEFkZHJlc3MifX0sIjQiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX3RleHQiLCJhdHRyaWJ1dGVzIjp7Im5hbWUiOiJQb3N0Y29kZSIsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJ3aWR0aCI6IjIwIiwibWF4IjoiNCIsImV4dHJhIjoiY2xhc3M9XCJzcS1mb3JtLXF1ZXN0aW9uLXBvc3Rjb2RlXCIiLCJ0ZXh0X3R5cGUiOiJudW1iZXIifX0sIjUiOnsicXVlc3Rpb25fdHlwZV9jb2RlIjoiZm9ybV9xdWVzdGlvbl90eXBlX3NlbGVjdCIsImF0dHJpYnV0ZXMiOnsibmFtZSI6Ik1lc3NhZ2Ugc3ViamVjdCIsInZhbGlkYXRpb25fY29uZGl0aW9uIjpbXSwicnVsZXMiOltdLCJkZWZhdWx0IjpbIkdlbmVyYWwgZW5xdWlyeSJdLCJvcHRpb25zIjp7IkdlbmVyYWwgZW5xdWlyeSI6IkdlbmVyYWwgZW5xdWlyeSIsIkNvbW1lbnRzIGFuZCBzdWdnZXN0aW9ucyI6IkNvbW1lbnRzIGFuZCBzdWdnZXN0aW9ucyIsIlRlY2huaWNhbCBzdXBwb3J0IjoiVGVjaG5pY2FsIHN1cHBvcnQiLCJPdGhlciI6Ik90aGVyIn0sImVtcHR5X3RleHQiOiJTZWxlY3QgbWVzc2FnZSB0eXBlIn19LCI2Ijp7InF1ZXN0aW9uX3R5cGVfY29kZSI6ImZvcm1fcXVlc3Rpb25fdHlwZV90ZXh0IiwiYXR0cmlidXRlcyI6eyJpc19yZXF1aXJlZCI6dHJ1ZSwibmFtZSI6Ik1lc3NhZ2UiLCJ2YWxpZGF0aW9uX2NvbmRpdGlvbiI6W10sInJ1bGVzIjpbXSwiY3VzdF9yZXF1aXJlZF9lcnJvciI6IlBsZWFzZSBhZGQgeW91ciBtZXNzYWdlIiwiaGVpZ2h0IjoiNSIsIm1heCI6IiJ9fX0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJuYW1lIjp7ImF0dHJpZCI6IjE3MzYiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiRm9ybSBDb250ZW50cyIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImxvZ19zdWJtaXNzaW9ucyI6eyJhdHRyaWQiOiIxNzQ4IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInNob3dfcmVzdWx0cyI6eyJhdHRyaWQiOiIxNjkyIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9ib2R5Y29weV9tYWluIjp7ImF0dHJpZCI6IjE3MTYiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjp0cnVlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwidXNlX2JvZHljb3B5X3RoYW5rX3lvdSI6eyJhdHRyaWQiOiIxNzMwIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9ib2R5Y29weV9leGl0Ijp7ImF0dHJpZCI6IjE3NTUiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9ib2R5Y29weV9jb25maXJtYXRpb24iOnsiYXR0cmlkIjoiMTY5MCIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic3VibWlzc2lvbl9lcnJvcnNfbXNnIjp7ImF0dHJpZCI6IjE3NzAiLCJ0eXBlIjoid3lzaXd5ZyIsInZhbHVlIjoiPHAgY2xhc3M9XCJzcS1mb3JtLWVycm9ycy1tZXNzYWdlXCI+VGhlcmUgd2VyZSBlcnJvcnMgc3VibWl0dGluZyB0aGUgZm9ybS4gUGxlYXNlIGNvcnJlY3QgdGhlIG1hcmtlZCBmaWVsZHMgYW5kIHRyeSBhZ2Fpbi48XC9wPiIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlcXVpcmVfY2FwdGNoYSI6eyJhdHRyaWQiOiIxNzE4IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2xlbmd0aCI6eyJhdHRyaWQiOiIxNzUwIiwidHlwZSI6ImludCIsInZhbHVlIjoiNSIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX3pvb20iOnsiYXR0cmlkIjoiMTcwMSIsInR5cGUiOiJmbG9hdCIsInZhbHVlIjoyLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9saW5rX3RleHQiOnsiYXR0cmlkIjoiMTc2NSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJSZWdlbmVyYXRlIHNlY3VyaXR5IGtleSIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9jb25maXJtYXRpb25fcGFnZSI6eyJhdHRyaWQiOiIxNzQwIiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6ZmFsc2UsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzYXZlX2FuZF9leGl0X2J1dHRvbiI6eyJhdHRyaWQiOiIxNjg2IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlNhdmUgYW5kIEV4aXQiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1bmF0dGFjaGVkX3BhZ2VfbmFtZSI6eyJhdHRyaWQiOiIxNzY5IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlF1ZXN0aW9ucyIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInN1Ym1pc3Npb25fZXhwaXJ5X3RpbWUiOnsiYXR0cmlkIjoiMTcwNiIsInR5cGUiOiJkdXJhdGlvbiIsInZhbHVlIjowLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV90ZXh0Y29sb3VyIjp7ImF0dHJpZCI6IjE3MTEiLCJ0eXBlIjoiY29sb3VyIiwidmFsdWUiOiIjMDAwMDAwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfYm9yZGVyY29sb3VyIjp7ImF0dHJpZCI6IjE2OTUiLCJ0eXBlIjoiY29sb3VyIiwidmFsdWUiOiIjMDAwMDAwIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInN1Ym1pdF9idXR0b25fZXh0cmFzIjp7ImF0dHJpZCI6IjE3MjQiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlc2V0X2J1dHRvbl9leHRyYXMiOnsiYXR0cmlkIjoiMTcwNyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV91c2Vmb250Ijp7ImF0dHJpZCI6IjE3NTkiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfd2lkdGgiOnsiYXR0cmlkIjoiMTc3NiIsInR5cGUiOiJpbnQiLCJ2YWx1ZSI6IjIwMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJjYXB0Y2hhX2hlaWdodCI6eyJhdHRyaWQiOiIxNzYxIiwidHlwZSI6ImludCIsInZhbHVlIjoiMzYiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9hcmMiOnsiYXR0cmlkIjoiMTc2MCIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9hcmNfY29sb3VyIjp7ImF0dHJpZCI6IjE3MjkiLCJ0eXBlIjoiY29sb3VyIiwidmFsdWUiOiIjRDIwQTBBIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sImNhcHRjaGFfaW5jbHVkZV91cHBlcmNhc2UiOnsiYXR0cmlkIjoiMTc0NyIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiY2FwdGNoYV9sYWJlbF90ZXh0Ijp7ImF0dHJpZCI6IjE3NzQiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiVHlwZSB0aGUgY2hhcmFjdGVycyB5b3Ugc2VlIGluIHRoZSBwaWN0dXJlIGFib3ZlOiAiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ1c2VfbW9sbG9tIjp7ImF0dHJpZCI6IjE3MjciLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjpmYWxzZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sIm1vbGxvbV9xdWVzdGlvbnNfdG9fY2hlY2siOnsiYXR0cmlkIjoiMTY4MiIsInR5cGUiOiJzZXJpYWxpc2UiLCJ2YWx1ZSI6W10sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtb2xsb21fdW5zdXJlX3N1Ym1pc3Npb25fdGV4dCI6eyJhdHRyaWQiOiIxNzM5IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJtb2xsb21fY2FwdGNoYV9sYWJlbF90ZXh0Ijp7ImF0dHJpZCI6IjE3NjMiLCJ0eXBlIjoidGV4dCIsInZhbHVlIjoiVHlwZSB0aGUgY2hhcmFjdGVycyB5b3Ugc2VlIGluIHRoZSBwaWN0dXJlIGFib3ZlOiAiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJkaXNhYmxlX2tleXdvcmRfcmVwbGFjZW1lbnRzIjp7ImF0dHJpZCI6IjE2ODQiLCJ0eXBlIjoiYm9vbGVhbiIsInZhbHVlIjp0cnVlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwic3VibWlzc2lvbl9saW1pdCI6eyJhdHRyaWQiOiIxNzQzIiwidHlwZSI6ImludCIsInZhbHVlIjoiMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdWJtaXNzaW9uX2xpbWl0X3JlYWNoZWRfdGV4dCI6eyJhdHRyaWQiOiIxNjk5IiwidHlwZSI6InRleHQiLCJ2YWx1ZSI6IlN1Ym1pc3Npb24gbGltaXQgaGFzIGJlZW4gcmVhY2hlZCBvbiB0aGlzIGZvcm0uIE5vIG1vcmUgc3VibWlzc2lvbiB3aWxsIGJlIGFjY2VwdGVkLiIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInB1YmxpY19pbmNvbXBsZXRlX3N1Ym1pc3Npb24iOnsiYXR0cmlkIjoiMTc1NiIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicHVibGljX2F1dGhfZW1haWxfcSI6eyJhdHRyaWQiOiIxNjg5IiwidHlwZSI6ImFzc2V0aWQiLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwdWJsaWNfYXV0aF9zdWJtaXRfYnV0dG9uX3RleHQiOnsiYXR0cmlkIjoiMTcxMyIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJTdWJtaXQiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicHVibGljX2F1dGhfZm9ybV9mb3JtYXQiOnsiYXR0cmlkIjoiMTY5NyIsInR5cGUiOiJ3eXNpd3lnIiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6dHJ1ZSwidXNlX2RlZmF1bHQiOnRydWV9LCJwdWJsaWNfYXV0aF9pbmZvX2Zvcm1hdCI6eyJhdHRyaWQiOiIxNzUyIiwidHlwZSI6Ind5c2l3eWciLCJ2YWx1ZSI6IiIsImlzX2NvbnRleHRhYmxlIjp0cnVlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInN1Ym1pdF90b19wYWdlX3VybCI6eyJhdHRyaWQiOiIxNzU4IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInVzZV9yZWNhcHRjaGEiOnsiYXR0cmlkIjoiMTY5NiIsInR5cGUiOiJib29sZWFuIiwidmFsdWUiOmZhbHNlLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVjYXB0Y2hhX3YyX3RoZW1lIjp7ImF0dHJpZCI6IjE3NzIiLCJ0eXBlIjoic2VsZWN0aW9uIiwidmFsdWUiOiJsaWdodCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJyZWNhcHRjaGFfdjJfc2l6ZSI6eyJhdHRyaWQiOiIxNzUxIiwidHlwZSI6InNlbGVjdGlvbiIsInZhbHVlIjoibm9ybWFsIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInRpbWVfcmVxdWlyZW1lbnQiOnsiYXR0cmlkIjoiMTczNCIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIxMCIsImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJ0aW1lX3JlcXVpcmVtZW50X2Vycm9yX21lc3NhZ2UiOnsiYXR0cmlkIjoiMTc2MiIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiJwb3NzaWJsZSBzcGFtIGF0dGVtcHQgZGV0ZWN0ZWQiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwiZm9ybV9leHRyYV9hdHRyaWJ1dGUiOnsiYXR0cmlkIjoiMTcxOSIsInR5cGUiOiJ0ZXh0IiwidmFsdWUiOiIiLCJpc19jb250ZXh0YWJsZSI6ZmFsc2UsInVzZV9kZWZhdWx0Ijp0cnVlfSwicmVzdHJpY3RlZF9zdWJtaXNzaW9uX2FjY2VzcyI6eyJhdHRyaWQiOiIxNzA0IiwidHlwZSI6ImJvb2xlYW4iLCJ2YWx1ZSI6dHJ1ZSwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX0sInJlY2lwaWVudF9lbWFpbHNfZm9ybWF0Ijp7ImF0dHJpZCI6IjE3NzkiLCJ0eXBlIjoiZW1haWxfZm9ybWF0IiwidmFsdWUiOnsiaHRtbF9mb3JtYXQiOiI8dGFibGUgaWQ9XCJ0YWJsZTQ0MzgwXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiPjx0aGVhZD48dHI+PHRoIGlkPVwidGFibGU0NDM4MHIxYzFcIiBzdHlsZT1cInRleHQtYWxpZ246IGxlZnQ7XCI+U3ViamVjdDxcL3RoPjx0aCBpZD1cInRhYmxlNDQzODByMWMyXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiPkRhdGU8XC90aD48dGggaWQ9XCJ0YWJsZTQ0MzgwcjFjM1wiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIj5Qb3N0Y29kZTxcL3RoPjx0aCBpZD1cInRhYmxlNDQzODByMWM0XCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBsZWZ0O1wiPlJlZ2FyZHM8XC90aD48dGggaWQ9XCJ0YWJsZTQ0MzgwcjFjNVwiIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIj5OYW1lPFwvdGg+PHRoIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIiBpZD1cInRhYmxlNDQzODByMWM2XCI+RW1haWwgYWRkcmVzczxcL3RoPjxcL3RyPjxcL3RoZWFkPjx0Ym9keT48dHI+PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIiBoZWFkZXJzPVwidGFibGU0NDM4MHIxYzFcIj4lcmVzcG9uc2VfMjMzMTZfcTUlPFwvdGQ+PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIiBoZWFkZXJzPVwidGFibGU0NDM4MHIxYzJcIj4lZm9ybV9zdWJtaXNzaW9uX3RpbWVfc2hvcnQlPFwvdGQ+PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIiBoZWFkZXJzPVwidGFibGU0NDM4MHIxYzNcIj4lcmVzcG9uc2VfMjMzMTZfcTQlPFwvdGQ+PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIiBoZWFkZXJzPVwidGFibGU0NDM4MHIxYzRcIj4lZ2xvYmFsc19wYWdlX3JlZmVycmVyJTxcL3RkPjx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGxlZnQ7XCIgaGVhZGVycz1cInRhYmxlNDQzODByMWM1XCI+JXJlc3BvbnNlXzIzMzE2X3ExJSAlcmVzcG9uc2VfMjMzMTZfcTIlPFwvdGQ+PHRkIHN0eWxlPVwidGV4dC1hbGlnbjogbGVmdDtcIiBoZWFkZXJzPVwidGFibGU0NDM4MHIxYzZcIj4lcmVzcG9uc2VfMjMzMTZfcTMlPFwvdGQ+PFwvdHI+PFwvdGJvZHk+PFwvdGFibGU+PHAgc3R5bGU9XCJib3JkZXI6IDBweFwiPjxzdHJvbmcgc3R5bGU9XCJib3JkZXI6IDBweFwiPjxiciBcLz5NZXNzYWdlOjxcL3N0cm9uZz4gPGJyIFwvPiVyZXNwb25zZV8yMzMxNl9xNiU8XC9wPjxwIHN0eWxlPVwiYm9yZGVyOiAwcHhcIj48c3Ryb25nIHN0eWxlPVwiYm9yZGVyOiAwcHhcIj5TdWJtaXNzaW9uIFRpbWU6PFwvc3Ryb25nPiAlZm9ybV9zdWJtaXNzaW9uX3RpbWUlPGJyIFwvPjxzdHJvbmcgc3R5bGU9XCJib3JkZXI6IDBweFwiPklQIEFkZHJlc3M6PFwvc3Ryb25nPiAlZm9ybV9zdWJtaXNzaW9uX2lwX2FkZHJlc3MlPFwvcD4iLCJ0ZXh0X2Zvcm1hdCI6IiIsInRvIjpbInJjbmZlZWRiYWNrQHBhcmVudGluZ3JjLm9yZy5hdSJdLCJ0b19hc3NldGlkcyI6W10sImZyb20iOiJub3JlcGx5QHByYy13ZWIuc3F1aXouY2xvdWQiLCJyZXBseV90byI6IiVyZXNwb25zZV8yMzMxNl9xMyUiLCJzdWJqZWN0IjoicmFpc2luZ2NoaWxkcmVuLm5ldC5hdSAtIHdlYnNpdGUgZmVlZGJhY2siLCJpbmNfYXR0YWNobWVudHMiOmZhbHNlLCJhc3NldF90b19zZW5kIjoiMCIsImRlc2lnbl90b19hcHBseSI6IjAiLCJsYXlvdXRfdG9fYXBwbHkiOiIwIiwic2VuZF9tYWlsX3RvX3R5cGUiOjAsImF0dGFjaG1lbnRzIjpbXX0sImlzX2NvbnRleHRhYmxlIjpmYWxzZSwidXNlX2RlZmF1bHQiOnRydWV9LCJzdGFmX2ZpZWxkIjp7ImF0dHJpZCI6IjE3ODAiLCJ0eXBlIjoiYXNzZXRpZCIsInZhbHVlIjoiIiwiaXNfY29udGV4dGFibGUiOmZhbHNlLCJ1c2VfZGVmYXVsdCI6dHJ1ZX19LCJtZXRhZGF0YSI6W119","formName":"Tell us what you think","formUrl":"https://raisingchildren.net.au/tell-us-what-you-think","formId":"23315","formContentId":"23316","thankYou":"VGhhbmtzIGZvciBwcm92aWRpbmcgZmVlZGJhY2sgb24gdGhpcyBhcnRpY2xlLiBXZSB2YWx1ZSB5b3VyIGNvbW1lbnRzIGFuZCBzdWdnZXN0aW9ucyDigJMgdGhleSBwbGF5IGFuIGltcG9ydGFudCBwYXJ0IGluIHRoZSBvbmdvaW5nIGRldmVsb3BtZW50IG9mIHJhaXNpbmdjaGlsZHJlbi5uZXQuYXUuIFBsZWFzZSBrZWVwIGluIG1pbmQgdGhhdCBhbHRob3VnaCB3ZSByZWFkIGVhY2ggYW5kIGV2ZXJ5IG1lc3NhZ2UsIHdlIGNhbid0IGFsd2F5cyByZXNwb25kIHRvIHlvdXIgZmVlZGJhY2sgaW5kaXZpZHVhbGx5Lg==","isActive":false,"template":"FeedbackForm"},{"title":"Acknowledgements","content":"<p>Our content is regularly reviewed for quality and currency. The last review of this article was by Dr Ewa Szymlek-Gay, Senior Lecturer in Nutrition Sciences, Institute for Physical Activity and Nutrition, School of Exercise and Nutrition Sciences, Deakin University. <a href=%22https://raisingchildren.net.au/about-us/our-experts-partners/scientific-advisory-board%22>Scientific Advisory Board</a> review was provided by Professor Kay Gibbons.</p><p>raisingchildren.net.au talks about ‘pregnant women’, ‘birthing mothers’, ‘non-birthing parents’, ‘partners’ and ‘breastfeeding’. We recognise that parents and families use various words to talk about themselves and their bodies. We respect their chosen terminology.</p>","isActive":false,"cleanStringQuotes":true},{"title":"References","content":"<p>Australian Bureau of Statistics. (2017). <em>Australian health survey: Consumption of food groups from the Australian dietary guidelines, 2011-12.</em> Commonwealth of Australia. Retrieved 23 August 2023 from https://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/4364.0.55.012Main+Features100032011-12?OpenDocument.</p><p>Australian Bureau of Statistics (2013). <em>Australian health survey: Biomedical results for nutrients, 2011-12. </em>Commonwealth of Australia. Retrieved 23 August 2023 from https://www.abs.gov.au/ausstats/abs@.nsf/Lookup/4364.0.55.006Chapter1202011-12.</p><p>Das, J.K., Salam, R.A., Mahmood, S.B., Moin, A., Kumar, R., Mukhtar, K., Lassi, Z.S., & Bhutta, Z.A. (2019). Food fortification with multiple micronutrients: Impact on health outcomes in general population. <em>Cochrane Database of Systematic Reviews 2019</em>, <em>12</em>, CD011400. https://doi.org/10.1002/14651858.CD011400.pub2.</p><p>da Silva Lopes, K., Yamaji, N., Rahman, M.O., Suto, M., Takemoto, Y., Garcia-Casal, M.N., & Ota, E. (2021). Nutrition‐specific interventions for preventing and controlling anaemia throughout the life cycle: An overview of systematic reviews. <em>Cochrane Database of Systematic Reviews 2021, 9</em>, CD013092. https://doi.org/10.1002/14651858.CD013092.pub2.</p><p>Kirby, M., & Danner, E. (2009). Nutritional deficiencies in children on restricted diets. <em>Pediatric Clinics of North America, 56</em>(5), 1085-1103. https://doi.org/10.1016/j.pcl.2009.07.003.</p><p>Lopez, A., Cacoub, P., Macdougall, I.C., & Peyrin-Biroulet, L. (2016). Iron deficiency anaemia. <em>Lancet</em>, <em>387</em>(10021), 907-916. https://doi.org/10.1016/S0140-6736(15)60865-0.</p><p>Moses, G. (2021). The safety of commonly used vitamins and minerals. <em>Australian Prescriber, 44</em>(4), 119-123. https://doi.org/10.18773/austprescr.2021.029.</p><p>National Health and Medical Research Council (NHMRC). (2018). <em>Nutrient reference values for Australia and New Zealand.</em> NHMRC. Retrieved 23 August 2023 from https://www.eatforhealth.gov.au/nutrient-reference-values.</p><p>National Health and Medical Research Council (NHMRC). (2013). <em>How much do we need each day?</em> NHMRC. Retrieved 23 August 2023 from https://www.eatforhealth.gov.au/food-essentials/how-much-do-we-need-each-day.</p><p>The Royal Children’s Hospital (RCH). (2019). <em>Iron deficiency</em>. RCH. Retrieved 23 August 2023 from https://www.rch.org.au/clinicalguide/guideline_index/Iron_deficiency/.</p>","isActive":false,"cleanStringQuotes":true},{"title":"External links","content":[{"asset_name^base64encode":"ZWF0Zm9yaGVhbHRoLmdvdi5hdSDigJMgSG93IG11Y2ggZG8gd2UgbmVlZCBlYWNoIGRheT8=","link_url^base64encode":"aHR0cHM6Ly93d3cuZWF0Zm9yaGVhbHRoLmdvdi5hdS9mb29kLWVzc2VudGlhbHMvaG93LW11Y2gtZG8td2UtbmVlZC1lYWNoLWRheQ=="},{"asset_name^base64encode":"ZWF0Zm9yaGVhbHRoLmdvdi5hdSDigJMgTnV0cmllbnQgYW5kIGRpZXRhcnkgZW5lcmd5IGNhbGN1bGF0b3I=","link_url^base64encode":"aHR0cHM6Ly93d3cuZWF0Zm9yaGVhbHRoLmdvdi5hdS9udXRyaWVudC1yZWZlcmVuY2UtdmFsdWVzL251dHJpZW50cy1kaWV0YXJ5LWVuZXJneS1jYWxjdWxhdG9y"}],"isActive":false,"template":"ExternalLinks"}]}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `articleUtilities` with id `articleUtilities-23326`") }</script></div> <!-- End container id #articleUtilities-23326 'articleUtilities' --> <script>console['info']("Complete 'articleUtilities' for container #articleUtilities-23326")</script> </div> </main> </div> <div class="col-sm-12 col-lg-3 section-sidebar"> <div class="content-viewport"> <!-- Class to hide for mobile viewports --> <div class="helpful-summary-rhs"><script>console['info']("Begin 'transducer' for container #helpful-summary-23299 helpfulSummary")</script><script>console['info']("Complete 'transducer' for container #helpful-summary-23299 helpfulSummary")</script><script>console['info']("Begin 'helpfulSummary' for container #helpful-summary-23299")</script><!-- Begin container id #helpful-summary-23299 'helpfulSummary' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/helpful-summary.js?v=2023-04-24T035717.998Z" id="helpfulSummary"></script></div><div id="helpful-summary-23299" class="helpful-summary container-template"></div><script>try {sq.helpfulSummary('helpful-summary-23299', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"helpful-summary","namespace":"helpful-summary","assetid":"23299","id":"helpful-summary-23299","camel":"helpfulSummary","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/helpful-summary.js","containerType":"div","counter":1162}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `helpfulSummary` with id `helpful-summary-23299`") }</script></div> <!-- End container id #helpful-summary-23299 'helpfulSummary' --> <script>console['info']("Complete 'helpfulSummary' for container #helpful-summary-23299")</script></div><script>console['info']("Begin 'transducer' for container #article-grid-44977 articleGrid")</script><script>console['info']("Complete 'transducer' for container #article-grid-44977 articleGrid")</script><script>console['info']("Begin 'articleGrid' for container #article-grid-44977")</script><!-- Begin container id #article-grid-44977 'articleGrid' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/article-grid.js?v=2023-04-24T035717.998Z" id="articleGrid"></script></div><div id="article-grid-44977" class="article-grid container-template"></div><script>try {sq.articleGrid('article-grid-44977', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"article-grid","namespace":"article-grid","assetid":"44977","id":"article-grid-44977","camel":"articleGrid","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/article-grid.js","containerType":"div","type":"","borderTop":true,"thumbnailAspectRatio":"4-3","howManyColsDesktop":"12","hideDescription":true,"itemVertically":false,"timeOnVideoMark":false,"showContainer":true,"title":"You might also like","defaultThumbnailURL":"https://raisingchildren.net.au/__data/assets/image/0006/40110/placeholder-wide.jpg","defaultThumbnailSquareURL":"https://raisingchildren.net.au/__data/assets/image/0014/40109/placeholder-narrow.jpg","displayChildItems":false,"childItems":[],"articleRootNode":"","items":[{"description":"Babies and toddlers need foods from all 5 healthy food groups: vegetables, fruit, cereals and grain foods, dairy and meat. Limit salty, sugary and fatty foods.","img":"https://raisingchildren.net.au/__data/assets/image/0032/48776/varieties/small.jpg","video":"","videoTime":"","content":"Healthy food for babies and toddlers: the 5 food groups","link":"https://raisingchildren.net.au/babies/breastfeeding-bottle-feeding-solids/healthy-eating-habits/babies-toddlers-food-groups"},{"description":"Preschoolers need foods from all 5 healthy food groups: vegetables, fruit, cereals and grain foods, dairy and meat. Limit salty, sugary and fatty foods.","img":"https://raisingchildren.net.au/__data/assets/image/0031/48784/varieties/small.jpg","video":"","videoTime":"","content":"Healthy food for preschoolers: the 5 food groups","link":"https://raisingchildren.net.au/preschoolers/nutrition-fitness/daily-food-guides/preschoolers-food-groups"},{"description":"School-age kids need foods from all 5 healthy food groups: vegetables, fruit, cereals and grain foods, dairy and meat. Limit salty, sugary and fatty foods.","img":"https://raisingchildren.net.au/__data/assets/image/0035/48788/varieties/small.jpg","video":"","videoTime":"","content":"Healthy food for school-age children: the 5 food groups","link":"https://raisingchildren.net.au/school-age/nutrition-fitness/daily-food-guides/school-age-food-groups"},{"description":"Pre-teens and teenagers need foods from all 5 healthy food groups: vegetables, fruit, cereals and grain foods, dairy and meat. Limit salty, sugary and fatty foods.","img":"https://raisingchildren.net.au/__data/assets/image/0027/48780/varieties/small.jpg","video":"","videoTime":"","content":"Healthy food for pre-teens and teenagers: the 5 food groups","link":"https://raisingchildren.net.au/teens/healthy-lifestyle/daily-food-guides/nutrition-healthy-food-teens"},{"description":"You can encourage healthy eating habits for children by offering lots of healthy food, being a healthy eating role model and having healthy eating routines.","img":"https://raisingchildren.net.au/__data/assets/image/0036/48798/varieties/small.jpg","video":"","videoTime":"","content":"Healthy eating habits for children","link":"https://raisingchildren.net.au/guides/first-1000-days/nutritious-food/healthy-eating-habits"},{"description":"Teens need healthy food but might make unhealthy food choices. Encourage healthy eating habits with role modelling and a positive food environment at home.","img":"https://raisingchildren.net.au/__data/assets/image/0028/48772/varieties/small.jpg","video":"","videoTime":"","content":"Healthy eating habits for pre-teens and teenagers","link":"https://raisingchildren.net.au/teens/healthy-lifestyle/healthy-eating-habits/healthy-eating-habits-teens"}],"video":false}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `articleGrid` with id `article-grid-44977`") }</script></div> <!-- End container id #article-grid-44977 'articleGrid' --> <script>console['info']("Complete 'articleGrid' for container #article-grid-44977")</script> </div> </div> </div> </div> <!-- /end src-matrix/nested-content/main/global-design-body-main.html --> <!-- begin src-matrix/nested-content/footer/global-design-footer.html --> <!-- Show Footer True d--> <footer class="footer" id="global-footer"><div><div class="container"><div class="footer-container footer-container--flex"><div class="footer-container footer-container--lhs"><div class="footer-lhs__group footer-lhs__group--supported"><h3 class="footer-lhs__label">Supported By</h3><ul class="footer-lhs__list"><li class="footer-lhs__item"><img class="footer-lhs__logo" src="https://raisingchildren.net.au/__data/assets/file/0015/23262/logo-gov.svg" alt="Department of Social Services"/></li></ul><div class="footer-lhs__summary"><div id="content_container_24285"> <p>Raising Children Network is supported by the Australian Government. Member organisations are the Parenting Research Centre and the Murdoch Childrens Research Institute with The Royal Children’s Hospital Centre for Community Child Health.</p> </div></div></div><div class="footer-lhs__group footer-lhs__group--organisation"><h3 class="footer-lhs__label">Member Organisations</h3><ul class="footer-lhs__list"><li class="footer-lhs__item"><a class="footer-lhs__link" href="https://parentingrc.org.au" title="Parenting Research Centre"><img class="footer-lhs__logo" src="https://raisingchildren.net.au/__data/assets/file/0017/23264/PRC_Stacked_MasterLogo_RGB.svg" alt="Parenting Research Centre"/></a></li><li class="footer-lhs__item"><a class="footer-lhs__link" href="https://www.rch.org.au" title="The Royal Children's Hospital Melbourne"><img class="footer-lhs__logo" src="https://raisingchildren.net.au/__data/assets/file/0016/23263/logo-chm.svg" alt="The Royal Children's Hospital Melbourne"/></a></li><li class="footer-lhs__item"><a class="footer-lhs__link" href="https://www.mcri.edu.au/" title="Murdoch Children's Research Institute"><img class="footer-lhs__logo" src="https://raisingchildren.net.au/__data/assets/file/0018/23265/logo-mcri.svg" alt="Murdoch Children's Research Institute"/></a></li></ul></div></div><div class="footer-container footer-container--links" role="tablist" aria-live="polite"></div><div class="footer-container footer-container--rhs"><div class="footer-follow"><p class="footer-follow__label">Follow us on social media</p><ul class="footer-follow__list"><li class="footer-follow__item"><a href="https://www.facebook.com/RaisingChildrenNetwork" class="footer-follow__link"><span class="social-icon social-icon--fb"></span><span class="sr-only">Facebook</span></a></li><li class="footer-follow__item"><a href="https://www.instagram.com/raisingchildren.net.au" class="footer-follow__link"><span class="social-icon social-icon--in"></span><span class="sr-only">Instagram</span></a></li><li class="footer-follow__item"><a href="https://www.youtube.com/user/RaisingChildren2011" class="footer-follow__link"><span class="social-icon social-icon--yt"></span><span class="sr-only">YouTube</span></a></li><li class="footer-follow__item"><a href="https://au.linkedin.com/company/raising-children-network" class="footer-follow__link"><span class="social-icon social-icon--linked"></span><span class="sr-only">LinkedIn</span></a></li></ul></div><div class="footer-forms"><form method="get" role="search" action="https://raisingchildren.net.au/search" id="footer__search-form" class="footer-search"></form><form method="post" action="https://raisingchildren.net.au/subscribe-to-our-emails" encType="multipart/form-data" class="footer-subscribe" id="footer_form_email_49761"><legend class="footer-subscribe__legend">Sign up now to get free parenting news delivered to your inbox.</legend><div class="footer-subscribe__wrapper"><label for="subscribe_email_input" class="sr-only">E-mail address</label><input type="email" id="undefined" name="undefined" value="undefined" title="Enter your email to get started" class="footer-subscribe__input" placeholder="Enter your email to get started" onChange="function (e) { return actions.onChangeSubscribe(e); }" autoComplete="off"></input><button id="footer_form_email_49761_submit" type="submit" title="Sign up" class="footer-subscribe__submit">Subscribe</button></div></form></div></div></div></div><div class="footer-container footer-container--acknowledgement"><div class="footer-acknowledgement__content"><div class="footer-flags"><div class="footer-flags__item-wrapper"><img src="https://raisingchildren.net.au/__data/assets/image/0028/98344/Aboriginal-flag-50px-height.jpg" alt="Aboriginal flag (c) WAM Clothing" class="footer-flags__item"/></div><div class="footer-flags__item-wrapper"><img src="https://raisingchildren.net.au/__data/assets/image/0029/98345/TSI-flag-50px-height.jpg" alt="Torres Strait Islands flag" class="footer-flags__item"/></div></div><div class="footer-acknowledgement">At raisingchildren.net.au we acknowledge the Traditional Custodians of the land on which we live, gather and work. We recognise their continuing connection to land, water and community. We pay respect to Elders past and present.</div></div></div><div class="footer-container footer-container--copyrights"><div class="footer-copyrights__content"><ul class="footer-links"><li class="footer-links__item"><a href="/legal/privacy" class="footer-links__link">Privacy statement</a></li><li class="footer-links__item"><a href="/legal/terms-of-use" class="footer-links__link">Terms of use</a></li></ul><div class="footer-copyrights"><p>© 2006-2024 Raising Children Network (Australia) Limited. All rights reserved.</p><p>Warning: This website and the information it contains is not intended as a substitute for professional consultation with a qualified practitioner.</p></div></div></div></div></footer> <script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/global-footer.js?h=3376513"></script> <script> (function(sq){ sq.state.footer = {"footerLinks":[{"asset_name":"Privacy statement","asset_url_path":"/legal/privacy"},{"asset_name":"Terms of use","asset_url_path":"/legal/terms-of-use"}],"callouts":{"supportedBy":[{"asset_name":"Department of Social Services","asset_redirect_url":"","asset_metadata_page_content_svg_thumbnail^as_asset:asset_url":"https://raisingchildren.net.au/__data/assets/file/0015/23262/logo-gov.svg","asset_url":"","asset_thumbnail_url":"https://raisingchildren.net.au/__data/assets/file/0015/23262/logo-gov.svg"}],"supportedBySummary":"\r\n<div id=\"content_container_24285\">\r\n<p>Raising Children Network is supported by the Australian Government. Member organisations are the Parenting Research Centre and the Murdoch Childrens Research Institute with The Royal Children’s Hospital Centre for Community Child Health.</p>\r\n</div>\r\n","memberOrganisations":[{"asset_name":"Parenting Research Centre","asset_redirect_url":"https://parentingrc.org.au","asset_metadata_page_content_svg_thumbnail^as_asset:asset_url":"https://raisingchildren.net.au/__data/assets/file/0017/23264/PRC_Stacked_MasterLogo_RGB.svg","asset_url":"https://parentingrc.org.au","asset_thumbnail_url":"https://raisingchildren.net.au/__data/assets/file/0017/23264/PRC_Stacked_MasterLogo_RGB.svg"},{"asset_name":"The Royal Children's Hospital Melbourne","asset_redirect_url":"https://www.rch.org.au","asset_metadata_page_content_svg_thumbnail^as_asset:asset_url":"https://raisingchildren.net.au/__data/assets/file/0016/23263/logo-chm.svg","asset_url":"https://www.rch.org.au","asset_thumbnail_url":"https://raisingchildren.net.au/__data/assets/file/0016/23263/logo-chm.svg"},{"asset_name":"Murdoch Children's Research Institute","asset_redirect_url":"https://www.mcri.edu.au/","asset_metadata_page_content_svg_thumbnail^as_asset:asset_url":"https://raisingchildren.net.au/__data/assets/file/0018/23265/logo-mcri.svg","asset_url":"https://www.mcri.edu.au/","asset_thumbnail_url":"https://raisingchildren.net.au/__data/assets/file/0018/23265/logo-mcri.svg"}]},"footerMenuBlocks":["a23224","a23232","a23240"]}; sq.ready( function() { return sq.siteTree }, function () { sq.globalFooter('global-footer', Object.assign({}, sq.state.site, {lineage: sq.state.page.lineage}, sq.state.footer, { siteTree: sq.siteTree, view: 'GlobalFooterInner' })); } ) })(sq); </script> <script>console['info']("Begin 'transducer' for container #glossary-23597 glossary")</script><script>console['info']("Complete 'transducer' for container #glossary-23597 glossary")</script><script>console['info']("Begin 'glossary' for container #glossary-23597")</script><!-- Begin container id #glossary-23597 'glossary' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/glossary.js?v=2023-04-24T035717.998Z" id="glossary"></script></div><div id="glossary-23597" class="glossary container-template"></div><script>try {sq.glossary('glossary-23597', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"glossary","namespace":"glossary","assetid":"23597","id":"glossary-23597","camel":"glossary","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/glossary.js","containerType":"div","glossaryJson":"https://raisingchildren.net.au/_webservices/json/glossary.json","convert":true}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `glossary` with id `glossary-23597`") }</script></div> <!-- End container id #glossary-23597 'glossary' --> <script>console['info']("Complete 'glossary' for container #glossary-23597")</script> <!-- /end src-matrix/nested-content/footer/global-design-footer.html --> <!-- <script type="text/javascript" src="//s7.addthis.com/js/300/addthis_widget.js#pubid=ra-5a2a25a975ec241c" async="async"></script> --> </div> </div> </body> </html>