CINXE.COM

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, '&#39;').replace(/"/gi, '&#34;'); }; // ## 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, '&apos;') .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('&amp; &lt; &#60;'); // // "& < <" // ``` // // ### 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(/&amp;/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-2025 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 &amp; 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-2025 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;567" /> <meta name="asset_name" content="Raising Children Network" /> <meta name="asset_short_name" content="Raising Children Network" /> <meta name="page_thumbnail_url" content="" /> <meta name="header_banner_url" content="https://raisingchildren.net.au/__data/assets/image/0035/49598/Baby-cues.jpg" /> <meta name="header_banner_square_url" content="" /> <meta name="language" content="en" /> <script> sq.state.page = {"articleType":"","lineage":["91","567"],"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":"567","asset_name":"Homepage","asset_short_name":"Homepage","asset_linking_info_current":{"linkid":"663","link_type":"2","link_value":"","lineage":["83","91"]},"asset_url":"https://raisingchildren.net.au/home","asset_metadata_stage_group":null}],"frontend_asset_name":"Raising Children Network","frontend_asset_short_name":"Raising Children Network","assetType":"site","assetid":"91","asset_url":"https://raisingchildren.net.au","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":0,"description":"","videoUrl":"","videoDescription":"","l1Header":"Homepage","heroSection":{"otherLanguage":false,"background":{"mobile":"","tablet":"https://raisingchildren.net.au/__data/assets/image/0035/49598/Baby-cues.jpg","desktop":"https://raisingchildren.net.au/__data/assets/image/0035/49598/Baby-cues.jpg","show":false},"preheading":"","ageMin":"","ageMax":"","ageSuitabilityDisplay":"","heading":"Raising Children Network","intro":"","showIntro":false,"landing":false,"button":{"toParent":{"href":"https://raisingchildren.net.au","text":"homepage"},"share":{"href":"https://raisingchildren.net.au","addThisLink":""}},"rtl":"ltr"},"topLevelItem":{"asset_assetid":"567","asset_name":"Homepage","asset_short_name":"Homepage","asset_linking_info_current":{"linkid":"663","link_type":"2","link_value":"","lineage":["83","91"]},"asset_url":"https://raisingchildren.net.au/home","asset_metadata_stage_group":null},"stageGroup":{"asset_assetid":"567","asset_name":"Homepage","asset_short_name":"Homepage","asset_linking_info_current":{"linkid":"663","link_type":"2","link_value":"","lineage":["83","91"]},"asset_url":"https://raisingchildren.net.au/home","asset_metadata_stage_group":null},"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>Raising Children Network</title> <!-- Configuration - Page Layout //--> <!-- Age //--> <meta name="page_age_min" content="6" /> <meta name="page_age_max" content="18" /> <meta name="page_age_suitability_display" content="df" /> <!-- Top Banner //--> <meta name="page_layout_header_banner" content="48837" /> <meta name="page_layout_header_banner_square" content="" /> <meta name="page_layout_header_show_banner" content="false" /> <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="" /> <meta name="page_legacy_asset_type" content="" /> <meta name="page_legacy_urls" content="" /> <meta name="page_legacy_short_title" content="" /> <!-- 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="false" /> <meta name="page_layout_sidebar_right_site_show" content="true" /> <meta name="page_layout_share_social_links_show" content="false" /> <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="Homepage" /> <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="false" /> <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="Raising Children Network | Expert Parenting Advice for Every Stage" /> <meta name="description" content="Get expert-backed parenting advice for every stage of childhood. Raising Children Network offers trusted tips on health, development and wellbeing." /> <meta name="date" content="2025-01-01 00:00:00" /> <link rel="canonical" href="https://raisingchildren.net.au/" /><!-- #44918 --> <meta name="keywords" content="" /> <meta name="author" content="" /> <meta name="copyright" content="" /> <meta name="robots" content="index,follow" /> <!-- SEO - Open Graph //--> <!-- Required //--> <meta property="og:title" content="Raising Children Network" /> <meta property="og:type" content="website" /> <meta property="og:url" content="https://raisingchildren.net.au" /> <meta property="og:image" content="https://raisingchildren.net.au/__data/assets/image/0035/49598/Baby-cues.jpg" /> <!-- Optional //--> <meta property="og:audio" content="https://raisingchildren.net.au" /> <meta property="og:site_name" content="Raising Children Network" /> <!-- SEO - Twitter Card //--> <!-- Card //--> <meta property="twitter:title" content="Raising Children Network" /> <meta property="twitter:image" content="https://raisingchildren.net.au/__data/assets/image/0035/49598/Baby-cues.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="91"/> <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: 02 March 2025 07:35:31 --> </head> <body> <input type="hidden" name="token" value="d9f55e76096561b4a2dce5fcbef5d4434014a313" 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"> <!-- begin src-matrix/nested-content/main/global-design-body-main-raw.html --> <main class="main main--raw" id="main"> <script>console['info']("Begin 'transducer' for container #carousel-45215 carousel")</script><script>console['info']("Complete 'transducer' for container #carousel-45215 carousel")</script><script>console['info']("Begin 'carousel' for container #carousel-45215")</script><!-- Begin container id #carousel-45215 'carousel' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/carousel.js?v=2023-04-24T035717.998Z" id="carousel"></script></div><div id="carousel-45215" class="carousel container-template"></div><script>try {sq.carousel('carousel-45215', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"carousel","namespace":"carousel","assetid":"45215","id":"carousel-45215","camel":"carousel","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/carousel.js","containerType":"div","logo":"https://raisingchildren.net.au/__data/assets/file/0015/23262/logo-gov.svg","logoUrl":"https://www.dss.gov.au/","introTextLink":"https://raisingchildren.net.au/about-us","title":"The Australian Parenting Website","introText":"<p>raisingchildren.net.au provides ad-free parenting videos, articles and apps backed by Australian experts.</p>","introTextLinkText":"Read more","items":[{"pageTitle":"Developmental regression","pageUrl":"https://raisingchildren.net.au/guides/a-z-health-reference/developmental-regression","asset_metadata_video_external_banner_url":null,"bannerUrl":"https://raisingchildren.net.au/__data/assets/image/0016/127303/Developmental-regression.jpg","video":false,"thumbnailImageUrl":"https://raisingchildren.net.au/__data/assets/image/0016/127303/varieties/medium.jpg","test":"https://raisingchildren.net.au/__data/assets/image/0016/127303/varieties/medium.jpg?test=true","id":"Accum ID","pageDescription":"Developmental regression is when children lose skills they’ve already learned. Signs are related to age or developmental stage. See your GP or child nurse.","asset":"127694"},{"pageTitle":"Natural disasters: family guide","pageUrl":"https://raisingchildren.net.au/guides/natural-disasters-preparation-support","asset_metadata_video_external_banner_url":null,"bannerUrl":"https://raisingchildren.net.au/__data/assets/image/0025/137383/natural-disasters-preparation-support-guide-wide.jpg","video":false,"thumbnailImageUrl":"https://raisingchildren.net.au/__data/assets/image/0025/137383/varieties/medium.jpg","test":"https://raisingchildren.net.au/__data/assets/image/0025/137383/varieties/medium.jpg?test=true","id":"Accum ID","pageDescription":"Find family-friendly information on natural disasters – how to prepare, pack an emergency bag, cope in evacuation centres, help kids recover, and more.","asset":"80437"},{"pageTitle":"Healthy video gaming","pageUrl":"https://raisingchildren.net.au/teens/entertainment-technology/gaming-gambling/healthy-gaming-children-teens","asset_metadata_video_external_banner_url":null,"bannerUrl":"https://raisingchildren.net.au/__data/assets/image/0028/48871/healthy-video-gaming.jpg","video":false,"thumbnailImageUrl":"https://raisingchildren.net.au/__data/assets/image/0028/48871/varieties/medium.jpg","test":"https://raisingchildren.net.au/__data/assets/image/0028/48871/varieties/medium.jpg?test=true","id":"Accum ID","pageDescription":"Video gaming for children and teenagers can be fun and worthwhile, if you help them develop healthy gaming habits like self-regulation, balance and safety.","asset":"38331"},{"pageTitle":"Distressing birth experiences","pageUrl":"https://raisingchildren.net.au/pregnancy/health-wellbeing/mental-health/distressing-or-traumatic-birth-experiences-guide-for-birthing-mothers","asset_metadata_video_external_banner_url":null,"bannerUrl":"https://raisingchildren.net.au/__data/assets/image/0024/129039/birth-trauma.jpg","video":false,"thumbnailImageUrl":"https://raisingchildren.net.au/__data/assets/image/0024/129039/varieties/medium.jpg","test":"https://raisingchildren.net.au/__data/assets/image/0024/129039/varieties/medium.jpg?test=true","id":"Accum ID","pageDescription":"<p>If you have a distressing or traumatic birth experience, you might feel disappointed, hurt or frightened. Find out how to&nbsp;get support.</p>","asset":"137790"},{"pageTitle":"Raising Healthy Minds app","pageUrl":"https://raisingchildren.net.au/guides/raising-healthy-minds-child-mental-health","asset_metadata_video_external_banner_url":null,"bannerUrl":"https://raisingchildren.net.au/__data/assets/image/0013/103612/RHM-Homepage-Carousel-D2.jpg","video":false,"thumbnailImageUrl":"https://raisingchildren.net.au/__data/assets/image/0013/103612/RHM-Homepage-Carousel-D2.jpg","pageDescription":"<p>Download now for tips to support your child&rsquo;s social and emotional wellbeing.</p>","asset":"101411"}]}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `carousel` with id `carousel-45215`") }</script></div> <!-- End container id #carousel-45215 'carousel' --> <script>console['info']("Complete 'carousel' for container #carousel-45215")</script><script>console['info']("Begin 'transducer' for container #image-tiles-45002 imageTiles")</script><script>console['info']("Complete 'transducer' for container #image-tiles-45002 imageTiles")</script><script>console['info']("Begin 'imageTiles' for container #image-tiles-45002")</script><!-- Begin container id #image-tiles-45002 'imageTiles' --> <div class="row image_tiles__wrapper"><a href="https://raisingchildren.net.au/pregnancy" class="image-tiles__item"><div class="image-tiles__background" style="background-image:url(https://raisingchildren.net.au/__data/assets/image/0025/46465/varieties/medium.jpg);"></div><div class="image-tiles__text-wrapper "><div class="image-tiles__text-backgroud"><span class="image-tiles__stage-name">Pregnancy</span></div></div></a><a href="https://raisingchildren.net.au/newborns" class="image-tiles__item"><div class="image-tiles__background" style="background-image:url(https://raisingchildren.net.au/__data/assets/image/0022/46462/varieties/medium.jpg);"></div><div class="image-tiles__text-wrapper "><div class="image-tiles__text-backgroud"><span class="image-tiles__stage-name">Newborns</span></div></div></a><a href="https://raisingchildren.net.au/babies" class="image-tiles__item"><div class="image-tiles__background" style="background-image:url(https://raisingchildren.net.au/__data/assets/image/0021/46434/varieties/medium.jpg);"></div><div class="image-tiles__text-wrapper "><div class="image-tiles__text-backgroud"><span class="image-tiles__stage-name">Babies</span></div></div></a><a href="https://raisingchildren.net.au/toddlers" class="image-tiles__item"><div class="image-tiles__background" style="background-image:url(https://raisingchildren.net.au/__data/assets/image/0021/46506/varieties/medium.jpg);"></div><div class="image-tiles__text-wrapper "><div class="image-tiles__text-backgroud"><span class="image-tiles__stage-name">Toddlers</span></div></div></a><a href="https://raisingchildren.net.au/preschoolers" class="image-tiles__item"><div class="image-tiles__background" style="background-image:url(https://raisingchildren.net.au/__data/assets/image/0032/47597/varieties/medium.jpg);"></div><div class="image-tiles__text-wrapper "><div class="image-tiles__text-backgroud"><span class="image-tiles__stage-name">Preschoolers</span></div></div></a><a href="https://raisingchildren.net.au/school-age" class="image-tiles__item"><div class="image-tiles__background" style="background-image:url(https://raisingchildren.net.au/__data/assets/image/0030/47199/varieties/medium.jpg);"></div><div class="image-tiles__text-wrapper "><div class="image-tiles__text-backgroud"><span class="image-tiles__stage-name">School age</span></div></div></a><a href="https://raisingchildren.net.au/pre-teens" class="image-tiles__item"><div class="image-tiles__background" style="background-image:url(https://raisingchildren.net.au/__data/assets/image/0029/46739/varieties/medium.jpg);"></div><div class="image-tiles__text-wrapper "><div class="image-tiles__text-backgroud"><span class="image-tiles__stage-name">Pre-teens</span></div></div></a><a href="https://raisingchildren.net.au/teens" class="image-tiles__item"><div class="image-tiles__background" style="background-image:url(https://raisingchildren.net.au/__data/assets/image/0021/47190/varieties/medium.jpg);"></div><div class="image-tiles__text-wrapper "><div class="image-tiles__text-backgroud"><span class="image-tiles__stage-name">Teens</span></div></div></a><a href="https://raisingchildren.net.au/grown-ups" class="image-tiles__item"><div class="image-tiles__background" style="background-image:url(https://raisingchildren.net.au/__data/assets/image/0014/50162/varieties/medium.jpg);"></div><div class="image-tiles__text-wrapper "><div class="image-tiles__text-backgroud"><span class="image-tiles__stage-name">Grown-ups</span></div></div></a><a href="https://raisingchildren.net.au/autism" class="image-tiles__item"><div class="image-tiles__background" style="background-image:url(https://raisingchildren.net.au/__data/assets/image/0022/47236/varieties/medium.jpg);"></div><div class="image-tiles__text-wrapper "><div class="image-tiles__text-backgroud"><span class="image-tiles__stage-name">Autism</span></div></div></a><a href="https://raisingchildren.net.au/disability" class="image-tiles__item"><div class="image-tiles__background" style="background-image:url(https://raisingchildren.net.au/__data/assets/image/0026/47933/varieties/medium.jpg);"></div><div class="image-tiles__text-wrapper "><div class="image-tiles__text-backgroud"><span class="image-tiles__stage-name">Disability</span></div></div></a><a href="https://raisingchildren.net.au/guides/a-z-health-reference" class="image-tiles__item"><div class="image-tiles__background" style="background-image:url(https://raisingchildren.net.au/__data/assets/image/0024/71880/varieties/medium.jpg);"></div><div class="image-tiles__text-wrapper "><div class="image-tiles__text-backgroud"><span class="image-tiles__stage-name">A-Z health reference</span></div></div></a></div> <!-- End container id #image-tiles-45002 'imageTiles' --> <script>console['info']("Complete 'imageTiles' for container #image-tiles-45002")</script><script>console['info']("Begin 'transducer' for container #feature-tiles-section-46605 featureTilesSection")</script><script>console['info']("Complete 'transducer' for container #feature-tiles-section-46605 featureTilesSection")</script><script>console['info']("Begin 'featureTilesSection' for container #feature-tiles-section-46605")</script><!-- Begin container id #feature-tiles-section-46605 'featureTilesSection' --> <div><div><script src="https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/feature-tiles-section.js?v=2023-04-24T035717.998Z" id="featureTilesSection"></script></div><section id="feature-tiles-section-46605" class="feature-tiles container-template"></section><script>try {sq.featureTilesSection('feature-tiles-section-46605', Object.assign({}, sq.state, sq.aliases, sq.componentViews, JSON.parse('{"cls":"feature-tiles ","namespace":"feature-tiles-section","assetid":"46605","id":"feature-tiles-section-46605","camel":"featureTilesSection","marginHide":"","src":"https://raisingchildren.net.au/__data/assets/git_bridge/0013/94/static/feature-tiles-section.js","containerType":"section","sectionTitle":"","tiles":[{"pageTitle":"Subscribe to our emails","pageUrl":"https://raisingchildren.net.au/subscribe","thumbnailImageUrl":{"standard":"https://raisingchildren.net.au/__data/assets/image/0027/71748/subscribe-tile-2-wide.jpg","squarish":"https://raisingchildren.net.au/__data/assets/image/0027/71748/subscribe-tile-2-wide.jpg"},"pageDescription":"Go from pregnancy to teens with our email newsletters, packed with practical, up-to-date information about raising children and looking after yourself as a parent.","asset":"51566","buttonText":"Subscribe now","backgroundColour":"#0277BD"},{"pageTitle":"Movie reviews","pageUrl":"https://raisingchildren.net.au/guides/movie-reviews","thumbnailImageUrl":{"standard":"https://raisingchildren.net.au/__data/assets/image/0025/49660/Bad-guys-Universal-Pictures.jpg","squarish":"https://raisingchildren.net.au/__data/assets/image/0025/49660/Bad-guys-Universal-Pictures.jpg"},"pageDescription":"Find the best movies for your family with our child-friendly reviews. Search new releases and older movies by age, rating and genre.","asset":"24879","buttonText":"Search movies","backgroundColour":"#2E7D32"},{"pageTitle":"Mental health resources","pageUrl":"https://raisingchildren.net.au/for-professionals/mental-health-resources","thumbnailImageUrl":{"standard":"https://raisingchildren.net.au/__data/assets/image/0034/66868/Professionals-mental-health-resources-wide.jpg","squarish":"https://raisingchildren.net.au/__data/assets/image/0034/66868/Professionals-mental-health-resources-wide.jpg"},"pageDescription":"Are you a professional working with families? Get information about child, teenage and parent mental health and wellbeing.","asset":"66862","buttonText":"Mental health index","backgroundColour":"#7E57C2"}]}'))); }catch(e) {console.log(e); console.trace(); console.error("Could not render component `featureTilesSection` with id `feature-tiles-section-46605`") }</script></div> <!-- End container id #feature-tiles-section-46605 'featureTilesSection' --> <script>console['info']("Complete 'featureTilesSection' for container #feature-tiles-section-46605")</script> </main> <!-- /end src-matrix/nested-content/main/global-design-body-main-raw.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&rsquo;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/RCH-TM-Horizontal_RGB-HR_resized.png" 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-2025 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&rsquo;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/RCH-TM-Horizontal_RGB-HR_resized.png","asset_url":"https://www.rch.org.au","asset_thumbnail_url":"https://raisingchildren.net.au/__data/assets/file/0016/23263/RCH-TM-Horizontal_RGB-HR_resized.png"},{"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>

Pages: 1 2 3 4 5 6 7 8 9 10