From 42aabe171ff638ab0233a07c25e42a2cbc1b6e61 Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Thu, 12 Nov 2020 13:47:47 -0500 Subject: [PATCH 01/10] rework matching & scaleanchor so they work together match-scale partial matches + scaleanchor partial 2 scale-match even more match-scale moremore --- src/plot_api/plot_api.js | 25 +- src/plot_api/subroutines.js | 41 -- src/plots/cartesian/autorange.js | 26 +- src/plots/cartesian/axis_ids.js | 10 - src/plots/cartesian/constraints.js | 423 ++++++++++++++---- src/plots/cartesian/dragbox.js | 95 +++- src/plots/cartesian/index.js | 1 + src/plots/cartesian/layout_attributes.js | 4 +- src/plots/cartesian/layout_defaults.js | 98 +--- src/plots/cartesian/scale_zoom.js | 1 + src/plots/cartesian/set_convert.js | 63 +-- src/plots/plots.js | 15 +- src/traces/bar/cross_trace_calc.js | 2 +- src/traces/bar/defaults.js | 2 +- src/traces/box/cross_trace_calc.js | 2 +- src/traces/histogram/cross_trace_defaults.js | 2 +- .../axes_chain_scaleanchor_matches.png | Bin 0 -> 32768 bytes .../mocks/axes_chain_scaleanchor_matches.json | 26 ++ 18 files changed, 504 insertions(+), 332 deletions(-) create mode 100644 test/image/baselines/axes_chain_scaleanchor_matches.png create mode 100644 test/image/mocks/axes_chain_scaleanchor_matches.json diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index 893e8b9a68e..70cee33ebc0 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -2283,21 +2283,18 @@ function _relayout(gd, aobj) { } // figure out if we need to recalculate axis constraints - var constraints = fullLayout._axisConstraintGroups || []; for(axId in rangesAltered) { - for(i = 0; i < constraints.length; i++) { - var group = constraints[i]; - if(group[axId]) { - // Always recalc if we're changing constrained ranges. - // Otherwise it's possible to violate the constraints by - // specifying arbitrary ranges for all axes in the group. - // this way some ranges may expand beyond what's specified, - // as they do at first draw, to satisfy the constraints. - flags.calc = true; - for(var groupAxId in group) { - if(!rangesAltered[groupAxId]) { - Axes.getFromId(gd, groupAxId)._constraintShrinkable = true; - } + var group = Axes.getFromId(gd, axId)._constraintGroup; + if(group) { + // Always recalc if we're changing constrained ranges. + // Otherwise it's possible to violate the constraints by + // specifying arbitrary ranges for all axes in the group. + // this way some ranges may expand beyond what's specified, + // as they do at first draw, to satisfy the constraints. + flags.calc = true; + for(var groupAxId in group) { + if(!rangesAltered[groupAxId]) { + Axes.getFromId(gd, groupAxId)._constraintShrinkable = true; } } } diff --git a/src/plot_api/subroutines.js b/src/plot_api/subroutines.js index 9769f214392..78bf78279b1 100644 --- a/src/plot_api/subroutines.js +++ b/src/plot_api/subroutines.js @@ -667,57 +667,16 @@ exports.redrawReglTraces = function(gd) { }; exports.doAutoRangeAndConstraints = function(gd) { - var fullLayout = gd._fullLayout; var axList = Axes.list(gd, '', true); - var matchGroups = fullLayout._axisMatchGroups || []; - var axLookup = {}; var ax; - var axRng; for(var i = 0; i < axList.length; i++) { ax = axList[i]; cleanAxisConstraints(gd, ax); doAutoRange(gd, ax); - axLookup[ax._id] = 1; } enforceAxisConstraints(gd); - - groupLoop: - for(var j = 0; j < matchGroups.length; j++) { - var group = matchGroups[j]; - var rng = null; - var id; - - for(id in group) { - ax = Axes.getFromId(gd, id); - - // skip over 'missing' axes which do not pass through doAutoRange - if(!axLookup[ax._id]) continue; - // if one axis has autorange false, we're done - if(ax.autorange === false) continue groupLoop; - - axRng = Lib.simpleMap(ax.range, ax.r2l); - if(rng) { - if(rng[0] < rng[1]) { - rng[0] = Math.min(rng[0], axRng[0]); - rng[1] = Math.max(rng[1], axRng[1]); - } else { - rng[0] = Math.max(rng[0], axRng[0]); - rng[1] = Math.min(rng[1], axRng[1]); - } - } else { - rng = axRng; - } - } - - for(id in group) { - ax = Axes.getFromId(gd, id); - ax.range = Lib.simpleMap(rng, ax.l2r); - ax._input.range = ax.range.slice(); - ax.setScale(); - } - } }; // An initial paint must be completed before these components can be diff --git a/src/plots/cartesian/autorange.js b/src/plots/cartesian/autorange.js index d2c90fcb271..b70ca0e24b7 100644 --- a/src/plots/cartesian/autorange.js +++ b/src/plots/cartesian/autorange.js @@ -14,6 +14,8 @@ var Lib = require('../../lib'); var FP_SAFE = require('../../constants/numerical').FP_SAFE; var Registry = require('../../registry'); +var getFromId = require('./axis_ids').getFromId; + module.exports = { getAutoRange: getAutoRange, makePadFn: makePadFn, @@ -213,7 +215,7 @@ function makePadFn(ax) { return function getPad(pt) { return pt.pad + (pt.extrapad ? extrappad : 0); }; } -function concatExtremes(gd, ax) { +function concatExtremes(gd, ax, noMatch) { var axId = ax._id; var fullData = gd._fullData; var fullLayout = gd._fullLayout; @@ -242,6 +244,28 @@ function concatExtremes(gd, ax) { _concat(fullLayout.annotations || [], ax._annIndices || []); _concat(fullLayout.shapes || [], ax._shapeIndices || []); + // Include the extremes from other matched axes with this one + // TODO: find a way to only do this calculation once, rather than + // repeating it for every axis in the matched group + if(ax._matchGroup && !noMatch) { + for(var axId2 in ax._matchGroup) { + if(axId2 !== ax._id) { + var ax2 = getFromId(gd, axId2); + var extremes2 = concatExtremes(gd, ax2, true); + // convert padding on the second axis to the first with lenRatio + var lenRatio = ax._length / ax2._length; + for(j = 0; j < extremes2.min.length; j++) { + d = extremes2.min[j]; + collapseMinArray(minArray, d.val, d.pad * lenRatio, {extrapad: d.extrapad}); + } + for(j = 0; j < extremes2.max.length; j++) { + d = extremes2.max[j]; + collapseMaxArray(maxArray, d.val, d.pad * lenRatio, {extrapad: d.extrapad}); + } + } + } + } + return {min: minArray, max: maxArray}; } diff --git a/src/plots/cartesian/axis_ids.js b/src/plots/cartesian/axis_ids.js index dff56784fe3..db2c3705275 100644 --- a/src/plots/cartesian/axis_ids.js +++ b/src/plots/cartesian/axis_ids.js @@ -123,16 +123,6 @@ exports.idSort = function(id1, id2) { return +(id1.substr(1) || 1) - +(id2.substr(1) || 1); }; -exports.getAxisGroup = function getAxisGroup(fullLayout, axId) { - var matchGroups = fullLayout._axisMatchGroups; - - for(var i = 0; i < matchGroups.length; i++) { - var group = matchGroups[i]; - if(group[axId]) return 'g' + i; - } - return axId; -}; - /* * An axis reference (e.g., the contents at the 'xref' key of an object) might * have extra information appended. Extract the axis ID only. diff --git a/src/plots/cartesian/constraints.js b/src/plots/cartesian/constraints.js index d3c0c138152..3cf4c8a12d0 100644 --- a/src/plots/cartesian/constraints.js +++ b/src/plots/cartesian/constraints.js @@ -9,74 +9,253 @@ 'use strict'; var Lib = require('../../lib'); -var id2name = require('./axis_ids').id2name; +var axisIds = require('./axis_ids'); +var id2name = axisIds.id2name; +var layoutAttributes = require('./layout_attributes'); var scaleZoom = require('./scale_zoom'); -var makePadFn = require('./autorange').makePadFn; -var concatExtremes = require('./autorange').concatExtremes; +var autorange = require('./autorange'); +var makePadFn = autorange.makePadFn; +var concatExtremes = autorange.concatExtremes; var ALMOST_EQUAL = require('../../constants/numerical').ALMOST_EQUAL; var FROM_BL = require('../../constants/alignment').FROM_BL; -exports.handleConstraintDefaults = function(containerIn, containerOut, coerce, opts) { - var allAxisIds = opts.allAxisIds; +exports.handleDefaults = function(layoutIn, layoutOut, opts) { + var axIds = opts.axIds; + var axHasImage = opts.axHasImage; + + // sets of axes linked by `scaleanchor` OR `matches` along with the + // scaleratios compounded together, populated in handleConstraintDefaults + var constraintGroups = layoutOut._axisConstraintGroups = []; + // similar to _axisConstraintGroups, but only matching axes + var matchGroups = layoutOut._axisMatchGroups = []; + + var i, group, axId, axName, axIn, axOut; + + for(i = 0; i < axIds.length; i++) { + axName = id2name(axIds[i]); + axIn = layoutIn[axName]; + axOut = layoutOut[axName]; + + handleOneAxDefaults(axIn, axOut, { + axIds: axIds, + layoutOut: layoutOut, + hasImage: axHasImage[axName] + }); + } + + // save matchGroup on each matching axis + function stash(groups, stashAttr) { + for(i = 0; i < groups.length; i++) { + group = groups[i]; + for(axId in group) { + layoutOut[id2name(axId)][stashAttr] = group; + } + } + } + stash(matchGroups, '_matchGroup'); + + // remove constraint groups that simply duplicate match groups + i = 0; + while(i < constraintGroups.length) { + group = constraintGroups[i]; + for(axId in group) { + axOut = layoutOut[id2name(axId)]; + if(axOut._matchGroup && Object.keys(axOut._matchGroup).length === Object.keys(group).length) { + constraintGroups.splice(i, 1); + i--; + } + break; + } + i++; + } + + // save constraintGroup on each constrained axis + stash(constraintGroups, '_constraintGroup'); + + // If any axis in a constraint group is fixedrange, they all get fixed + // This covers matches axes, as they're now in the constraintgroup too. + for(i = 0; i < constraintGroups.length; i++) { + group = constraintGroups[i]; + for(axId in group) { + axOut = layoutOut[id2name(axId)]; + if(axOut.fixedrange) { + for(var axId2 in group) { + var axName2 = id2name(axId2); + if((layoutIn[axName2] || {}).fixedrange === false) { + Lib.warn( + 'fixedrange was specified as false for axis ' + + axName2 + ' but was overridden because another ' + + 'axis in its constraint group has fixedrange true' + ); + } + layoutOut[id2name(axId2)].fixedrange = true; + } + break; + } + } + } + + // make sure `matching` axes share values of necessary attributes + // Precedence (base axis is the one that doesn't list a `matches`, ie others + // all point to it): + // (1) explicitly defined value in the base axis + // (2) explicitly defined in another axis (arbitrary order) + // (3) default in the base axis + var matchAttrs = { + constrain: 1, + range: 1, + autorange: 1, + rangemode: 1, + rangebreaks: 1, + categoryorder: 1, + categoryarray: 1 + }; + for(i = 0; i < matchGroups.length; i++) { + group = matchGroups[i]; + + // find 'matching' range attrs + for(var attr in matchAttrs) { + var val = null; + var baseAx; + for(axId in group) { + axName = id2name(axId); + axIn = layoutIn[axName]; + axOut = layoutOut[axName]; + if(!(attr in axOut)) { + continue; + } + if(!axOut.matches) { + baseAx = axOut; + // top priority: explicit value in base axis + if(attr in axIn) { + val = axOut[attr]; + break; + } + } + if(val === null && attr in axIn) { + // second priority: first explicit value in another axis + val = axOut[attr]; + } + } + if(val === null && attr in baseAx) { + // fallback: default value in base axis + val = baseAx[attr]; + } + // but we still might not have a value, which is fine. + if(val !== null) { + for(axId in group) { + // TODO: do we also need to (deep) copy rangebreaks? + layoutOut[id2name(axId)][attr] = attr === 'range' ? val.slice() : val; + } + } + } + } +}; + +function handleOneAxDefaults(axIn, axOut, opts) { + var axIds = opts.axIds; var layoutOut = opts.layoutOut; - var scaleanchorDflt = opts.scaleanchorDflt; - var constrainDflt = opts.constrainDflt; + var hasImage = opts.hasImage; var constraintGroups = layoutOut._axisConstraintGroups; var matchGroups = layoutOut._axisMatchGroups; - var axId = containerOut._id; + var axId = axOut._id; var axLetter = axId.charAt(0); var splomStash = ((layoutOut._splomAxes || {})[axLetter] || {})[axId] || {}; - var thisID = containerOut._id; - var letter = thisID.charAt(0); + var thisID = axOut._id; + var isX = thisID.charAt(0) === 'x'; + + // Clear _matchGroup & _constraintGroup so relinkPrivateKeys doesn't keep + // an old one around. If this axis is in a group we'll set this again later + axOut._matchGroup = null; + axOut._constraintGroup = null; + + function coerce(attr, dflt) { + return Lib.coerce(axIn, axOut, layoutAttributes, attr, dflt); + } // coerce the constraint mechanics even if this axis has no scaleanchor // because it may be the anchor of another axis. - var constrain = coerce('constrain', constrainDflt); - Lib.coerce(containerIn, containerOut, { + coerce('constrain', hasImage ? 'domain' : 'range'); + Lib.coerce(axIn, axOut, { constraintoward: { valType: 'enumerated', - values: letter === 'x' ? ['left', 'center', 'right'] : ['bottom', 'middle', 'top'], - dflt: letter === 'x' ? 'center' : 'middle' + values: isX ? ['left', 'center', 'right'] : ['bottom', 'middle', 'top'], + dflt: isX ? 'center' : 'middle' } }, 'constraintoward'); - var matches, matchOpts; + // If this axis is already part of a constraint group, we can't + // scaleanchor any other axis in that group, or we'd make a loop. + // Filter axIds to enforce this, also matching axis types. + var thisType = axOut.type; + var i, idi; + + var linkableAxes = []; + for(i = 0; i < axIds.length; i++) { + idi = axIds[i]; + if(idi === thisID) continue; - if((containerIn.matches || splomStash.matches) && !containerOut.fixedrange) { - matchOpts = getConstraintOpts(matchGroups, thisID, allAxisIds, layoutOut); - matches = Lib.coerce(containerIn, containerOut, { + var axi = layoutOut[id2name(idi)]; + if(axi.type === thisType) { + linkableAxes.push(idi); + } + } + + var thisGroup = getConstraintGroup(constraintGroups, thisID); + if(thisGroup) { + var linkableAxesNoLoops = []; + for(i = 0; i < linkableAxes.length; i++) { + idi = linkableAxes[i]; + if(!thisGroup[idi]) linkableAxesNoLoops.push(idi); + } + linkableAxes = linkableAxesNoLoops; + } + + var canLink = linkableAxes.length; + + var matches, scaleanchor; + + if(canLink && (axIn.matches || splomStash.matches)) { + matches = Lib.coerce(axIn, axOut, { matches: { valType: 'enumerated', - values: matchOpts.linkableAxes || [], - dflt: splomStash.matches + values: linkableAxes, + dflt: linkableAxes.indexOf(splomStash.matches) !== -1 ? splomStash.matches : undefined } }, 'matches'); } - // 'matches' wins over 'scaleanchor' (for now) - var scaleanchor, scaleOpts; - - if(!matches && - !(containerOut.fixedrange && constrain !== 'domain') && - (containerIn.scaleanchor || scaleanchorDflt) - ) { - scaleOpts = getConstraintOpts(constraintGroups, thisID, allAxisIds, layoutOut, constrain); - scaleanchor = Lib.coerce(containerIn, containerOut, { + // 'matches' wins over 'scaleanchor' - each axis can only specify one + // constraint, but you can chain matches and scaleanchor constraints by + // specifying them in separate axes. + var scaleanchorDflt = hasImage && !isX ? axOut.anchor : undefined; + if(canLink && !matches && (axIn.scaleanchor || scaleanchorDflt)) { + scaleanchor = Lib.coerce(axIn, axOut, { scaleanchor: { valType: 'enumerated', - values: scaleOpts.linkableAxes || [] + values: linkableAxes } }, 'scaleanchor', scaleanchorDflt); } if(matches) { - delete containerOut.constrain; - updateConstraintGroups(matchGroups, matchOpts.thisGroup, thisID, matches, 1); - } else if(allAxisIds.indexOf(containerIn.matches) !== -1) { - Lib.warn('ignored ' + containerOut._name + '.matches: "' + - containerIn.matches + '" to avoid either an infinite loop ' + - 'or because the target axis has fixed range.'); + axOut._matchGroup = updateConstraintGroups(matchGroups, thisID, matches, 1); + + // Also include match constraints in the scale groups + var matchedAx = layoutOut[id2name(matches)]; + var matchRatio = extent(axOut) / extent(matchedAx); + if(isX !== (matches.charAt(0) === 'x')) { + // We don't yet know the actual scale ratio of x/y matches constraints, + // due to possible automargins, so just leave a placeholder for this: + // 'x' means "x size over y size", 'y' means the inverse. + // in principle in the constraint group you could get multiple of these. + matchRatio = (isX ? 'x' : 'y') + matchRatio; + } + updateConstraintGroups(constraintGroups, thisID, matches, matchRatio); + } else if(axIn.matches && axIds.indexOf(axIn.matches) !== -1) { + Lib.warn('ignored ' + axOut._name + '.matches: "' + + axIn.matches + '" to avoid an infinite loop'); } if(scaleanchor) { @@ -87,64 +266,33 @@ exports.handleConstraintDefaults = function(containerIn, containerOut, coerce, o // Of course if you use several super-tiny values you could eventually // force a product of these to zero and all hell would break loose... // Likewise with super-huge values. - if(!scaleratio) scaleratio = containerOut.scaleratio = 1; - - updateConstraintGroups(constraintGroups, scaleOpts.thisGroup, thisID, scaleanchor, scaleratio); - } else if(allAxisIds.indexOf(containerIn.scaleanchor) !== -1) { - Lib.warn('ignored ' + containerOut._name + '.scaleanchor: "' + - containerIn.scaleanchor + '" to avoid either an infinite loop ' + - 'and possibly inconsistent scaleratios, or because the target ' + - 'axis has fixed range or this axis declares a *matches* constraint.'); + if(!scaleratio) scaleratio = axOut.scaleratio = 1; + + updateConstraintGroups(constraintGroups, thisID, scaleanchor, scaleratio); + } else if(axIn.scaleanchor && axIds.indexOf(axIn.scaleanchor) !== -1) { + Lib.warn('ignored ' + axOut._name + '.scaleanchor: "' + + axIn.scaleanchor + '" to avoid either an infinite loop ' + + 'and possibly inconsistent scaleratios, or because this axis ' + + 'declares a *matches* constraint.'); } -}; - -// If this axis is already part of a constraint group, we can't -// scaleanchor any other axis in that group, or we'd make a loop. -// Filter allAxisIds to enforce this, also matching axis types. -function getConstraintOpts(groups, thisID, allAxisIds, layoutOut, constrain) { - var doesNotConstrainRange = constrain !== 'range'; - var thisType = layoutOut[id2name(thisID)].type; - var i, j, idj, axj; +} - var linkableAxes = []; - for(j = 0; j < allAxisIds.length; j++) { - idj = allAxisIds[j]; - if(idj === thisID) continue; - - axj = layoutOut[id2name(idj)]; - if(axj.type === thisType) { - if(!axj.fixedrange) { - linkableAxes.push(idj); - } else if(doesNotConstrainRange && axj.anchor) { - // allow domain constraints on subplots where - // BOTH axes have fixedrange:true and constrain:domain - var counterAxj = layoutOut[id2name(axj.anchor)]; - if(counterAxj.fixedrange) { - linkableAxes.push(idj); - } - } - } - } +function extent(ax) { + return ax.domain[1] - ax.domain[0]; +} - for(i = 0; i < groups.length; i++) { +function getConstraintGroup(groups, thisID) { + for(var i = 0; i < groups.length; i++) { if(groups[i][thisID]) { - var thisGroup = groups[i]; - - var linkableAxesNoLoops = []; - for(j = 0; j < linkableAxes.length; j++) { - idj = linkableAxes[j]; - if(!thisGroup[idj]) linkableAxesNoLoops.push(idj); - } - return {linkableAxes: linkableAxesNoLoops, thisGroup: thisGroup}; + return groups[i]; } } - - return {linkableAxes: linkableAxes, thisGroup: null}; + return null; } /* * Add this axis to the axis constraint groups, which is the collection - * of axes that are all constrained together on scale. + * of axes that are all constrained together on scale (or matching). * * constraintGroups: a list of objects. each object is * {axis_id: scale_within_group}, where scale_within_group is @@ -153,12 +301,14 @@ function getConstraintOpts(groups, thisID, allAxisIds, layoutOut, constrain) { * * thisGroup: the group the current axis is already in * thisID: the id if the current axis - * scaleanchor: the id of the axis to scale it with - * scaleratio: the ratio of this axis to the scaleanchor axis + * thatID: the id of the axis to scale it with + * scaleratio: the ratio of this axis to the thatID axis */ -function updateConstraintGroups(constraintGroups, thisGroup, thisID, scaleanchor, scaleratio) { +function updateConstraintGroups(constraintGroups, thisID, thatID, scaleratio) { var i, j, groupi, keyj, thisGroupIndex; + var thisGroup = getConstraintGroup(constraintGroups, thisID); + if(thisGroup === null) { thisGroup = {}; thisGroup[thisID] = 1; @@ -171,38 +321,109 @@ function updateConstraintGroups(constraintGroups, thisGroup, thisID, scaleanchor var thisGroupKeys = Object.keys(thisGroup); // we know that this axis isn't in any other groups, but we don't know - // about the scaleanchor axis. If it is, we need to merge the groups. + // about the thatID axis. If it is, we need to merge the groups. for(i = 0; i < constraintGroups.length; i++) { groupi = constraintGroups[i]; - if(i !== thisGroupIndex && groupi[scaleanchor]) { - var baseScale = groupi[scaleanchor]; + if(i !== thisGroupIndex && groupi[thatID]) { + var baseScale = groupi[thatID]; for(j = 0; j < thisGroupKeys.length; j++) { keyj = thisGroupKeys[j]; - groupi[keyj] = baseScale * scaleratio * thisGroup[keyj]; + groupi[keyj] = multiplyScales(baseScale, multiplyScales(scaleratio, thisGroup[keyj])); } constraintGroups.splice(thisGroupIndex, 1); return; } } - // otherwise, we insert the new scaleanchor axis as the base scale (1) + // otherwise, we insert the new thatID axis as the base scale (1) // in its group, and scale the rest of the group to it if(scaleratio !== 1) { for(j = 0; j < thisGroupKeys.length; j++) { - thisGroup[thisGroupKeys[j]] *= scaleratio; + var key = thisGroupKeys[j]; + thisGroup[key] = multiplyScales(scaleratio, thisGroup[key]); + } + } + thisGroup[thatID] = 1; +} + +// scales may be numbers or 'x1.3', 'yy4.5' etc to multiply by as-yet-unknown +// ratios between x and y plot sizes n times +function multiplyScales(a, b) { + var aPrefix = ''; + var bPrefix = ''; + var aLen, bLen; + + if(typeof a === 'string') { + aPrefix = a.match(/^[xy]*/)[0]; + aLen = aPrefix.length; + a = +a.substr(aLen); + } + + if(typeof b === 'string') { + bPrefix = b.match(/^[xy]*/)[0]; + bLen = bPrefix.length; + b = +b.substr(bLen); + } + + var c = a * b; + + // just two numbers + if(!aLen && !bLen) { + return c; + } + + // one or more prefixes of the same type + if(!aLen || !bLen || aPrefix.charAt(0) === bPrefix.charAt(0)) { + return aPrefix + bPrefix + (a * b); + } + + // x and y cancel each other out exactly - back to a number + if(aLen === bLen) { + return c; + } + + // partial cancelation of prefixes + return (aLen > bLen ? aPrefix.substr(bLen) : bPrefix.substr(aLen)) + c; +} + +function finalRatios(group, fullLayout) { + var size = fullLayout._size; + var yRatio = size.h / size.w; + var out = {}; + var keys = Object.keys(group); + for(var i = 0; i < keys.length; i++) { + var key = keys[i]; + var val = group[key]; + + if(typeof val === 'string') { + var prefix = val.match(/^[xy]*/)[0]; + var pLen = prefix.length; + val = +val.substr(pLen); + var mult = prefix.charAt(0) === 'y' ? yRatio : (1 / yRatio); + for(var j = 0; j < pLen; j++) { + val *= mult; + } } + + out[key] = val; } - thisGroup[scaleanchor] = 1; + return out; } exports.enforce = function enforce(gd) { var fullLayout = gd._fullLayout; var constraintGroups = fullLayout._axisConstraintGroups || []; - var i, j, axisID, ax, normScale, mode, factor; + var i, j, group, axisID, ax, normScale, mode, factor; + // matching constraints are handled in the autorange code when autoranged, + // or in the supplyDefaults code when explicitly ranged. + // now we just need to handle scaleanchor constraints + // matches constraints that chain with scaleanchor constraints are included + // here too, but because matches has already been satisfied, + // any changes here should preserve that. for(i = 0; i < constraintGroups.length; i++) { - var group = constraintGroups[i]; + group = finalRatios(constraintGroups[i], fullLayout); var axisIDs = Object.keys(group); var minScale = Infinity; @@ -351,6 +572,16 @@ exports.enforce = function enforce(gd) { } }; +exports.getAxisGroup = function getAxisGroup(fullLayout, axId) { + var matchGroups = fullLayout._axisMatchGroups; + + for(var i = 0; i < matchGroups.length; i++) { + var group = matchGroups[i]; + if(group[axId]) return 'g' + i; + } + return axId; +}; + // For use before autoranging, check if this axis was previously constrained // by domain but no longer is exports.clean = function clean(gd, ax) { diff --git a/src/plots/cartesian/dragbox.js b/src/plots/cartesian/dragbox.js index e81ff1d5aa0..97e09909eab 100644 --- a/src/plots/cartesian/dragbox.js +++ b/src/plots/cartesian/dragbox.js @@ -122,10 +122,11 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) { yActive = isDirectionActive(yaxes, ns); allFixedRanges = !yActive && !xActive; - links = calcLinks(gd, gd._fullLayout._axisConstraintGroups, xaHash, yaHash); matches = calcLinks(gd, gd._fullLayout._axisMatchGroups, xaHash, yaHash); - editX = ew || links.isSubplotConstrained || matches.isSubplotConstrained; - editY = ns || links.isSubplotConstrained || matches.isSubplotConstrained; + links = calcLinks(gd, gd._fullLayout._axisConstraintGroups, xaHash, yaHash, matches); + var spConstrained = links.isSubplotConstrained || matches.isSubplotConstrained; + editX = ew || spConstrained; + editY = ns || spConstrained; var fullLayout = gd._fullLayout; hasScatterGl = fullLayout._has('scattergl'); @@ -554,6 +555,22 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) { gd._fullLayout._replotting = true; if(xActive === 'ew' || yActive === 'ns') { + var spDx = xActive ? -dx : 0; + var spDy = yActive ? -dy : 0; + if(matches.isSubplotConstrained) { + if(xActive && yActive) { + var frac = (dx / pw - dy / ph) / 2; + dx = frac * pw; + dy = -frac * ph; + spDx = -dx; + spDy = -dy; + } + if(yActive) { + spDx = -spDy * pw / ph; + } else { + spDy = -spDx * ph / pw; + } + } if(xActive) { dragAxList(xaxes, dx); updateMatchedAxRange('x'); @@ -562,7 +579,7 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) { dragAxList(yaxes, dy); updateMatchedAxRange('y'); } - updateSubplots([xActive ? -dx : 0, yActive ? -dy : 0, pw, ph]); + updateSubplots([spDx, spDy, pw, ph]); ticksAndAnnotations(); gd.emit('plotly_relayouting', updates); return; @@ -593,15 +610,17 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) { (movedAx._rl[end] - movedAx._rl[otherEnd]); } - if(links.isSubplotConstrained && xActive && yActive) { + var dxySign = ((xActive === 'w') === (yActive === 'n')) ? 1 : -1; + if(xActive && yActive && (links.isSubplotConstrained || matches.isSubplotConstrained)) { // dragging a corner of a constrained subplot: // respect the fixed corner, but harmonize dx and dy - var dxySign = ((xActive === 'w') === (yActive === 'n')) ? 1 : -1; var dxyFraction = (dx / pw + dxySign * dy / ph) / 2; dx = dxyFraction * pw; dy = dxySign * dxyFraction * ph; } + var xStart, yStart; + if(xActive === 'w') dx = dz(xaxes, 0, dx); else if(xActive === 'e') dx = dz(xaxes, 1, -dx); else if(!xActive) dx = 0; @@ -610,12 +629,16 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) { else if(yActive === 's') dy = dz(yaxes, 0, -dy); else if(!yActive) dy = 0; - var xStart = (xActive === 'w') ? dx : 0; - var yStart = (yActive === 'n') ? dy : 0; + xStart = (xActive === 'w') ? dx : 0; + yStart = (yActive === 'n') ? dy : 0; - if(links.isSubplotConstrained) { + if( + links.isSubplotConstrained || + // NW or SE on matching axes - create a symmetric zoom + (matches.isSubplotConstrained && xActive && yActive && dxySign > 0) + ) { var i; - if(!xActive && yActive.length === 1) { + if(matches.isSubplotConstrained || (!xActive && yActive.length === 1)) { // dragging one end of the y axis of a constrained subplot // scale the other axis the same about its middle for(i = 0; i < xaxes.length; i++) { @@ -625,7 +648,7 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) { dx = dy * pw / ph; xStart = dx / 2; } - if(!yActive && xActive.length === 1) { + if(matches.isSubplotConstrained || (!yActive && xActive.length === 1)) { for(i = 0; i < yaxes.length; i++) { yaxes[i].range = yaxes[i]._r.slice(); scaleZoom(yaxes[i], 1 - dx / pw); @@ -635,9 +658,24 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) { } } - updateMatchedAxRange('x'); - updateMatchedAxRange('y'); - updateSubplots([xStart, yStart, pw - dx, ph - dy]); + if(!matches.isSubplotConstrained || !yActive) { + updateMatchedAxRange('x'); + } + if(!matches.isSubplotConstrained || !xActive) { + updateMatchedAxRange('y'); + } + var xSize = pw - dx; + var ySize = ph - dy; + if(matches.isSubplotConstrained && !(xActive && yActive)) { + if(xActive) { + yStart = xStart ? 0 : (dx * ph / pw); + ySize = xSize * ph / pw; + } else { + xStart = yStart ? 0 : (dy * pw / ph); + xSize = ySize * pw / ph; + } + } + updateSubplots([xStart, yStart, xSize, ySize]); ticksAndAnnotations(); gd.emit('plotly_relayouting', updates); } @@ -837,15 +875,15 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) { xa = sp.xaxis; ya = sp.yaxis; - var editX2 = editX && !xa.fixedrange && xaHash[xa._id]; - var editY2 = editY && !ya.fixedrange && yaHash[ya._id]; + var editX2 = (editX || matches.isSubplotConstrained) && !xa.fixedrange && xaHash[xa._id]; + var editY2 = (editY || matches.isSubplotConstrained) && !ya.fixedrange && yaHash[ya._id]; var xScaleFactor2, yScaleFactor2; var clipDx, clipDy; if(editX2) { xScaleFactor2 = xScaleFactor; - clipDx = ew ? viewBox[0] : getShift(xa, xScaleFactor2); + clipDx = ew || matches.isSubplotConstrained ? viewBox[0] : getShift(xa, xScaleFactor2); } else if(matches.xaHash[xa._id]) { xScaleFactor2 = xScaleFactor; clipDx = viewBox[0] * xa._length / xa0._length; @@ -861,7 +899,7 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) { if(editY2) { yScaleFactor2 = yScaleFactor; - clipDy = ns ? viewBox[1] : getShift(ya, yScaleFactor2); + clipDy = ns || matches.isSubplotConstrained ? viewBox[1] : getShift(ya, yScaleFactor2); } else if(matches.yaHash[ya._id]) { yScaleFactor2 = yScaleFactor; clipDy = viewBox[1] * ya._length / ya0._length; @@ -1151,11 +1189,13 @@ function xyCorners(box) { 'h' + clen + 'v3h-' + (clen + 3) + 'Z'; } -function calcLinks(gd, groups, xaHash, yaHash) { +function calcLinks(gd, groups, xaHash, yaHash, exclude) { var isSubplotConstrained = false; var xLinks = {}; var yLinks = {}; var xID, yID, xLinkID, yLinkID; + var xExclude = (exclude || {}).xaHash; + var yExclude = (exclude || {}).yaHash; for(var i = 0; i < groups.length; i++) { var group = groups[i]; @@ -1166,14 +1206,22 @@ function calcLinks(gd, groups, xaHash, yaHash) { // dragging them, so we know to scale these axes automatically too // to match the changes in the dragged x axes for(xLinkID in group) { - if(!(xLinkID.charAt(0) === 'x' ? xaHash : yaHash)[xLinkID]) { + if( + !(exclude && (xExclude[xLinkID] || yExclude[xLinkID])) && + !(xLinkID.charAt(0) === 'x' ? xaHash : yaHash)[xLinkID] + ) { xLinks[xLinkID] = xID; } } // check if the x and y axes of THIS drag are linked for(yID in yaHash) { - if(group[yID]) isSubplotConstrained = true; + if( + !(exclude && (xExclude[yID] || yExclude[yID])) && + group[yID] + ) { + isSubplotConstrained = true; + } } } } @@ -1183,7 +1231,10 @@ function calcLinks(gd, groups, xaHash, yaHash) { for(yID in yaHash) { if(group[yID]) { for(yLinkID in group) { - if(!(yLinkID.charAt(0) === 'x' ? xaHash : yaHash)[yLinkID]) { + if( + !(exclude && (xExclude[yLinkID] || yExclude[yLinkID])) && + !(yLinkID.charAt(0) === 'x' ? xaHash : yaHash)[yLinkID] + ) { yLinks[yLinkID] = yID; } } diff --git a/src/plots/cartesian/index.js b/src/plots/cartesian/index.js index 43d8d2c2fdc..6c92547f86e 100644 --- a/src/plots/cartesian/index.js +++ b/src/plots/cartesian/index.js @@ -335,6 +335,7 @@ exports.clean = function(newFullData, newFullLayout, oldFullData, oldFullLayout) purgeSubplotLayers(oldFullLayout._cartesianlayer.selectAll('.subplot'), oldFullLayout); oldFullLayout._defs.selectAll('.axesclip').remove(); delete oldFullLayout._axisConstraintGroups; + delete oldFullLayout._axisMatchGroups; } else if(oldSubplotList.cartesian) { // otherwise look for subplots we need to remove diff --git a/src/plots/cartesian/layout_attributes.js b/src/plots/cartesian/layout_attributes.js index 9251e2cd50b..ef6b4205e15 100644 --- a/src/plots/cartesian/layout_attributes.js +++ b/src/plots/cartesian/layout_attributes.js @@ -223,13 +223,13 @@ module.exports = { constrain: { valType: 'enumerated', values: ['range', 'domain'], - dflt: 'range', role: 'info', editType: 'plot', description: [ 'If this axis needs to be compressed (either due to its own `scaleanchor` and', '`scaleratio` or those of the other axis), determines how that happens:', - 'by increasing the *range* (default), or by decreasing the *domain*.' + 'by increasing the *range*, or by decreasing the *domain*.', + 'Default is *domain* for axes containing image traces, *range* otherwise.' ].join(' ') }, // constraintoward: not used directly, just put here for reference diff --git a/src/plots/cartesian/layout_defaults.js b/src/plots/cartesian/layout_defaults.js index 6ce3c069db1..8f53fa4bb19 100644 --- a/src/plots/cartesian/layout_defaults.js +++ b/src/plots/cartesian/layout_defaults.js @@ -19,7 +19,7 @@ var basePlotLayoutAttributes = require('../layout_attributes'); var layoutAttributes = require('./layout_attributes'); var handleTypeDefaults = require('./type_defaults'); var handleAxisDefaults = require('./axis_defaults'); -var handleConstraintDefaults = require('./constraints').handleConstraintDefaults; +var constraints = require('./constraints'); var handlePositionDefaults = require('./position_defaults'); var axisIds = require('./axis_ids'); @@ -378,96 +378,8 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) { // We need to do this after all axes have coerced both `type` // (so we link only axes of the same type) and // `fixedrange` (so we can avoid linking from OR TO a fixed axis). - - // sets of axes linked by `scaleanchor` along with the scaleratios compounded - // together, populated in handleConstraintDefaults - var constraintGroups = layoutOut._axisConstraintGroups = []; - // similar to _axisConstraintGroups, but for matching axes - var matchGroups = layoutOut._axisMatchGroups = []; - // make sure to include 'missing' axes here - var allAxisIdsIncludingMissing = allAxisIds.concat(missingMatchedAxisIds); - var axNamesIncludingMissing = axNames.concat(Lib.simpleMap(missingMatchedAxisIds, id2name)); - - for(i = 0; i < axNamesIncludingMissing.length; i++) { - axName = axNamesIncludingMissing[i]; - axLetter = axName.charAt(0); - axLayoutIn = layoutIn[axName]; - axLayoutOut = layoutOut[axName]; - - var scaleanchorDflt; - if(axLetter === 'y' && !axLayoutIn.hasOwnProperty('scaleanchor') && axHasImage[axName]) { - scaleanchorDflt = axLayoutOut.anchor; - } else { - scaleanchorDflt = undefined; - } - - var constrainDflt; - if(!axLayoutIn.hasOwnProperty('constrain') && axHasImage[axName]) { - constrainDflt = 'domain'; - } else { - constrainDflt = undefined; - } - - handleConstraintDefaults(axLayoutIn, axLayoutOut, coerce, { - allAxisIds: allAxisIdsIncludingMissing, - layoutOut: layoutOut, - scaleanchorDflt: scaleanchorDflt, - constrainDflt: constrainDflt - }); - } - - for(i = 0; i < matchGroups.length; i++) { - var group = matchGroups[i]; - var rng = null; - var autorange = null; - - // find 'matching' range attrs - for(axId in group) { - axLayoutOut = layoutOut[id2name(axId)]; - if(!axLayoutOut.matches) { - rng = axLayoutOut.range; - autorange = axLayoutOut.autorange; - } - } - // if `ax.matches` values are reciprocal, - // pick values of first axis in group - if(rng === null || autorange === null) { - for(axId in group) { - axLayoutOut = layoutOut[id2name(axId)]; - rng = axLayoutOut.range; - autorange = axLayoutOut.autorange; - break; - } - } - // apply matching range attrs - for(axId in group) { - axLayoutOut = layoutOut[id2name(axId)]; - if(axLayoutOut.matches) { - axLayoutOut.range = rng.slice(); - axLayoutOut.autorange = autorange; - } - axLayoutOut._matchGroup = group; - } - - // remove matching axis from scaleanchor constraint groups (for now) - if(constraintGroups.length) { - for(axId in group) { - for(j = 0; j < constraintGroups.length; j++) { - var group2 = constraintGroups[j]; - for(var axId2 in group2) { - if(axId === axId2) { - Lib.warn('Axis ' + axId2 + ' is set with both ' + - 'a *scaleanchor* and *matches* constraint; ' + - 'ignoring the scale constraint.'); - - delete group2[axId2]; - if(Object.keys(group2).length < 2) { - constraintGroups.splice(j, 1); - } - } - } - } - } - } - } + constraints.handleDefaults(layoutIn, layoutOut, { + axIds: allAxisIds.concat(missingMatchedAxisIds), + axHasImage: axHasImage + }); }; diff --git a/src/plots/cartesian/scale_zoom.js b/src/plots/cartesian/scale_zoom.js index 3cdc8b4495f..db6fbfad9a4 100644 --- a/src/plots/cartesian/scale_zoom.js +++ b/src/plots/cartesian/scale_zoom.js @@ -23,4 +23,5 @@ module.exports = function scaleZoom(ax, factor, centerFraction) { ax.l2r(center + (rangeLinear[0] - center) * factor), ax.l2r(center + (rangeLinear[1] - center) * factor) ]; + ax.setScale(); }; diff --git a/src/plots/cartesian/set_convert.js b/src/plots/cartesian/set_convert.js index af34c0febe1..5d55e06fd73 100644 --- a/src/plots/cartesian/set_convert.js +++ b/src/plots/cartesian/set_convert.js @@ -368,17 +368,12 @@ module.exports = function setConvert(ax, fullLayout) { var traceIndices = ax._traceIndices; var i, j; - var matchGroups = fullLayout._axisMatchGroups; - if(matchGroups && matchGroups.length && ax._categories.length === 0) { - for(i = 0; i < matchGroups.length; i++) { - var group = matchGroups[i]; - if(group[axId]) { - for(var axId2 in group) { - if(axId2 !== axId) { - var ax2 = fullLayout[axisIds.id2name(axId2)]; - traceIndices = traceIndices.concat(ax2._traceIndices); - } - } + var group = ax._matchGroup; + if(group && ax._categories.length === 0) { + for(var axId2 in group) { + if(axId2 !== axId) { + var ax2 = fullLayout[axisIds.id2name(axId2)]; + traceIndices = traceIndices.concat(ax2._traceIndices); } } } @@ -882,38 +877,26 @@ module.exports = function setConvert(ax, fullLayout) { // should skip if not category nor multicategory ax.clearCalc = function() { - var matchGroups = fullLayout._axisMatchGroups; - - if(matchGroups && matchGroups.length) { - var found = false; - - for(var i = 0; i < matchGroups.length; i++) { - var group = matchGroups[i]; - - if(group[axId]) { - found = true; - var categories = null; - var categoriesMap = null; - - for(var axId2 in group) { - var ax2 = fullLayout[axisIds.id2name(axId2)]; - if(ax2._categories) { - categories = ax2._categories; - categoriesMap = ax2._categoriesMap; - break; - } - } - - if(categories && categoriesMap) { - ax._categories = categories; - ax._categoriesMap = categoriesMap; - } else { - ax._emptyCategories(); - } + var group = ax._matchGroup; + if(group) { + var categories = null; + var categoriesMap = null; + + for(var axId2 in group) { + var ax2 = fullLayout[axisIds.id2name(axId2)]; + if(ax2._categories) { + categories = ax2._categories; + categoriesMap = ax2._categoriesMap; break; } } - if(!found) ax._emptyCategories(); + + if(categories && categoriesMap) { + ax._categories = categories; + ax._categoriesMap = categoriesMap; + } else { + ax._emptyCategories(); + } } else { ax._emptyCategories(); } diff --git a/src/plots/plots.js b/src/plots/plots.js index 2ac82672cee..f98879726c9 100644 --- a/src/plots/plots.js +++ b/src/plots/plots.js @@ -3234,12 +3234,8 @@ function sortAxisCategoriesByValue(axList, gd) { function setupAxisCategories(axList, fullData, fullLayout) { var axLookup = {}; - var i, ax, axId; - - for(i = 0; i < axList.length; i++) { - ax = axList[i]; - axId = ax._id; + function setupOne(ax) { ax.clearCalc(); if(ax.type === 'multicategory') { ax.setupMultiCategory(fullData); @@ -3248,13 +3244,14 @@ function setupAxisCategories(axList, fullData, fullLayout) { axLookup[ax._id] = 1; } + Lib.simpleMap(axList, setupOne); + // look into match groups for 'missing' axes var matchGroups = fullLayout._axisMatchGroups || []; - for(i = 0; i < matchGroups.length; i++) { - for(axId in matchGroups[i]) { + for(var i = 0; i < matchGroups.length; i++) { + for(var axId in matchGroups[i]) { if(!axLookup[axId]) { - ax = fullLayout[axisIDs.id2name(axId)]; - ax.clearCalc(); + setupOne(fullLayout[axisIDs.id2name(axId)]); } } } diff --git a/src/traces/bar/cross_trace_calc.js b/src/traces/bar/cross_trace_calc.js index 1bb5dda2f81..719174b555d 100644 --- a/src/traces/bar/cross_trace_calc.js +++ b/src/traces/bar/cross_trace_calc.js @@ -14,7 +14,7 @@ var BADNUM = require('../../constants/numerical').BADNUM; var Registry = require('../../registry'); var Axes = require('../../plots/cartesian/axes'); -var getAxisGroup = require('../../plots/cartesian/axis_ids').getAxisGroup; +var getAxisGroup = require('../../plots/cartesian/constraints').getAxisGroup; var Sieve = require('./sieve.js'); /* diff --git a/src/traces/bar/defaults.js b/src/traces/bar/defaults.js index f9393cf766d..593a1670cff 100644 --- a/src/traces/bar/defaults.js +++ b/src/traces/bar/defaults.js @@ -15,7 +15,7 @@ var Registry = require('../../registry'); var handleXYDefaults = require('../scatter/xy_defaults'); var handlePeriodDefaults = require('../scatter/period_defaults'); var handleStyleDefaults = require('./style_defaults'); -var getAxisGroup = require('../../plots/cartesian/axis_ids').getAxisGroup; +var getAxisGroup = require('../../plots/cartesian/constraints').getAxisGroup; var attributes = require('./attributes'); var coerceFont = Lib.coerceFont; diff --git a/src/traces/box/cross_trace_calc.js b/src/traces/box/cross_trace_calc.js index 72b57856cfb..165ef398627 100644 --- a/src/traces/box/cross_trace_calc.js +++ b/src/traces/box/cross_trace_calc.js @@ -10,7 +10,7 @@ var Axes = require('../../plots/cartesian/axes'); var Lib = require('../../lib'); -var getAxisGroup = require('../../plots/cartesian/axis_ids').getAxisGroup; +var getAxisGroup = require('../../plots/cartesian/constraints').getAxisGroup; var orientations = ['v', 'h']; diff --git a/src/traces/histogram/cross_trace_defaults.js b/src/traces/histogram/cross_trace_defaults.js index 906bac67a8c..1db1f51be4e 100644 --- a/src/traces/histogram/cross_trace_defaults.js +++ b/src/traces/histogram/cross_trace_defaults.js @@ -15,7 +15,7 @@ var traceIs = require('../../registry').traceIs; var handleGroupingDefaults = require('../bar/defaults').handleGroupingDefaults; var nestedProperty = Lib.nestedProperty; -var getAxisGroup = axisIds.getAxisGroup; +var getAxisGroup = require('../../plots/cartesian/constraints').getAxisGroup; var BINATTRS = [ {aStr: {x: 'xbins.start', y: 'ybins.start'}, name: 'start'}, diff --git a/test/image/baselines/axes_chain_scaleanchor_matches.png b/test/image/baselines/axes_chain_scaleanchor_matches.png new file mode 100644 index 0000000000000000000000000000000000000000..026c906cb553d5cf2968fadf6a0dbd11a3ebccbe GIT binary patch literal 32768 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 literal 0 HcmV?d00001 diff --git a/test/image/mocks/axes_chain_scaleanchor_matches.json b/test/image/mocks/axes_chain_scaleanchor_matches.json new file mode 100644 index 00000000000..36d95c91580 --- /dev/null +++ b/test/image/mocks/axes_chain_scaleanchor_matches.json @@ -0,0 +1,26 @@ +{ + "data": [ + {"z": [[1, 2], [3, 4], [5, 6]], "type": "heatmap", "showscale": false}, + {"z": [[1, 2, 3], [6, 5, 4]], "type": "heatmap", "xaxis": "x2", "yaxis": "y2", "showscale": false}, + {"z": [[1, 6], [2, 5], [3, 4]], "type": "heatmap", "xaxis": "x3", "yaxis": "y3", "showscale": false}, + {"z": [[1, 2, 3], [4, 5, 6]], "type": "heatmap", "xaxis": "x4", "yaxis": "y4", "showscale": false} + ], + "layout": { + "xaxis": {"domain": [0, 0.4], "constrain": "domain"}, + "yaxis": {"domain": [0, 0.3], "constrain": "domain", "scaleanchor": "x", "title": {"text": "constrain domain"}}, + "xaxis2": {"domain": [0.6, 1], "matches": "x", "anchor": "y2", "title": {"text": "<- each right subplot matches
the axes left and below
and all are constrained
to square bricks."}}, + "yaxis2": {"domain": [0.2, 0.5], "matches": "y", "anchor": "x2"}, + "xaxis3": {"domain": [0, 0.4], "constrain": "range", "anchor": "y3"}, + "yaxis3": {"domain": [0.5, 0.8], "constrain": "range", "scaleanchor": "x3", "anchor": "x3", "title": {"text": "constrain range"}}, + "xaxis4": {"domain": [0.6, 1], "matches": "x3", "anchor": "y4"}, + "yaxis4": {"domain": [0.7, 1], "matches": "y3", "anchor": "x4"}, + "shapes": [ + {"x0": 0, "x1": 0.4, "y0": 0, "y1": 0.3, "xref": "paper", "yref": "paper", "type": "rect", "line": {"color": "#888", "dash": "dot"}}, + {"x0": 0.6, "x1": 1, "y0": 0.2, "y1": 0.5, "xref": "paper", "yref": "paper", "type": "rect", "line": {"color": "#888", "dash": "dot"}}, + {"x0": 0, "x1": 0.4, "y0": 0.5, "y1": 0.8, "xref": "paper", "yref": "paper", "type": "rect", "line": {"color": "#888", "dash": "dot"}}, + {"x0": 0.6, "x1": 1, "y0": 0.7, "y1": 1, "xref": "paper", "yref": "paper", "type": "rect", "line": {"color": "#888", "dash": "dot"}} + ], + "width": 700, + "height": 600 + } +} From d76a304005f7a5d1363e48e5165177315a4ddc09 Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Wed, 18 Nov 2020 10:26:08 -0500 Subject: [PATCH 02/10] compounding aspect ratios edge case test, and minor scale/match interaction fix --- src/plots/cartesian/dragbox.js | 2 +- .../axes_chain_scaleanchor_matches2.png | Bin 0 -> 46324 bytes .../axes_chain_scaleanchor_matches2.json | 82 ++++++++++++++++++ 3 files changed, 83 insertions(+), 1 deletion(-) create mode 100644 test/image/baselines/axes_chain_scaleanchor_matches2.png create mode 100644 test/image/mocks/axes_chain_scaleanchor_matches2.json diff --git a/src/plots/cartesian/dragbox.js b/src/plots/cartesian/dragbox.js index 97e09909eab..73b977fd59d 100644 --- a/src/plots/cartesian/dragbox.js +++ b/src/plots/cartesian/dragbox.js @@ -633,7 +633,7 @@ function makeDragBox(gd, plotinfo, x, y, w, h, ns, ew) { yStart = (yActive === 'n') ? dy : 0; if( - links.isSubplotConstrained || + (links.isSubplotConstrained && !matches.isSubplotConstrained) || // NW or SE on matching axes - create a symmetric zoom (matches.isSubplotConstrained && xActive && yActive && dxySign > 0) ) { diff --git a/test/image/baselines/axes_chain_scaleanchor_matches2.png b/test/image/baselines/axes_chain_scaleanchor_matches2.png new file mode 100644 index 0000000000000000000000000000000000000000..1383d433defd405531c534bdb8d398ef65119ab6 GIT binary patch literal 46324 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 Tw5o*vf`8Z4_0_5oH>3Xt0Z;yy literal 0 HcmV?d00001 diff --git a/test/image/mocks/axes_chain_scaleanchor_matches2.json b/test/image/mocks/axes_chain_scaleanchor_matches2.json new file mode 100644 index 00000000000..aee211fd4c8 --- /dev/null +++ b/test/image/mocks/axes_chain_scaleanchor_matches2.json @@ -0,0 +1,82 @@ +{ + "data": [ + {"y":[1,2], "marker": {"color": "red"}}, + {"y":[1,2],"xaxis":"x2","yaxis":"y2", "marker": {"color": "red"}}, + {"y":[1,2],"xaxis":"x3","yaxis":"y3", "marker": {"color": "red"}}, + {"y":[1,2],"xaxis":"x4","yaxis":"y4", "marker": {"color": "red"}}, + {"y":[1,2],"xaxis":"x5","yaxis":"y5", "marker": {"color": "green"}}, + {"y":[1,2],"xaxis":"x6","yaxis":"y6", "marker": {"color": "green"}}, + {"y":[1,2],"xaxis":"x7","yaxis":"y7", "marker": {"color": "green"}}, + {"y":[1,2],"xaxis":"x8","yaxis":"y8", "marker": {"color": "green"}}, + {"y":[1,2],"xaxis":"x9","yaxis":"y9", "marker": {"color": "blue"}}, + {"y":[1,2],"xaxis":"x10","yaxis":"y10", "marker": {"color": "blue"}}, + {"y":[1,2],"xaxis":"x11","yaxis":"y11", "marker": {"color": "blue"}}, + {"y":[1,2],"xaxis":"x12","yaxis":"y12", "marker": {"color": "blue"}}, + {"y":[1,2],"xaxis":"x13","yaxis":"y13", "marker": {"color": "black"}}, + {"y":[1,2],"xaxis":"x14","yaxis":"y14", "marker": {"color": "black"}}, + {"y":[1,2],"xaxis":"x15","yaxis":"y15", "marker": {"color": "black"}}, + {"y":[1,2],"xaxis":"x16","yaxis":"y16", "marker": {"color": "black"}} + ], + "layout": { + "xaxis": {"domain": [0, 0.2], "anchor": "y"}, + "yaxis": {"domain": [0, 0.15], "anchor": "x", "matches": "x"}, + "xaxis2": {"domain": [0.25, 0.45], "anchor": "y2", "scaleanchor": "y"}, + "yaxis2": {"domain": [0, 0.15], "anchor": "x2", "matches": "x2"}, + "xaxis3": {"domain": [0.5, 0.7], "anchor": "y3", "scaleanchor": "y2"}, + "yaxis3": {"domain": [0, 0.15], "anchor": "x3", "matches": "x3"}, + "xaxis4": {"domain": [0.75, 0.95], "anchor": "y4", "scaleanchor": "y3"}, + "yaxis4": {"domain": [0, 0.15], "anchor": "x4", "matches": "x4"}, + + "xaxis5": {"domain": [0, 0.2], "anchor": "y5", "constrain": "domain"}, + "yaxis5": {"domain": [0.25, 0.4], "anchor": "x5", "matches": "x5", "constrain": "domain"}, + "xaxis6": {"domain": [0.25, 0.45], "anchor": "y6", "scaleanchor": "y5", "constrain": "domain"}, + "yaxis6": {"domain": [0.25, 0.4], "anchor": "x6", "matches": "x6", "constrain": "domain"}, + "xaxis7": {"domain": [0.5, 0.7], "anchor": "y7", "scaleanchor": "y6", "constrain": "domain"}, + "yaxis7": {"domain": [0.25, 0.4], "anchor": "x7", "matches": "x7", "constrain": "domain"}, + "xaxis8": {"domain": [0.75, 0.95], "anchor": "y8", "scaleanchor": "y7", "constrain": "domain"}, + "yaxis8": {"domain": [0.25, 0.4], "anchor": "x8", "matches": "x8", "constrain": "domain"}, + + "xaxis9": {"domain": [0, 0.15], "anchor": "y9"}, + "yaxis9": {"domain": [0.5, 0.7], "anchor": "x9", "matches": "x9"}, + "xaxis10": {"domain": [0.25, 0.4], "anchor": "y10", "scaleanchor": "y9"}, + "yaxis10": {"domain": [0.5, 0.7], "anchor": "x10", "matches": "x10"}, + "xaxis11": {"domain": [0.5, 0.65], "anchor": "y11", "scaleanchor": "y10"}, + "yaxis11": {"domain": [0.5, 0.7], "anchor": "x11", "matches": "x11"}, + "xaxis12": {"domain": [0.75, 0.9], "anchor": "y12", "scaleanchor": "y11"}, + "yaxis12": {"domain": [0.5, 0.7], "anchor": "x12", "matches": "x12"}, + + "xaxis13": {"domain": [0, 0.15], "anchor": "y13", "constrain": "domain"}, + "yaxis13": {"domain": [0.75, 0.95], "anchor": "x13", "matches": "x13", "constrain": "domain"}, + "xaxis14": {"domain": [0.25, 0.4], "anchor": "y14", "scaleanchor": "y13", "constrain": "domain"}, + "yaxis14": {"domain": [0.75, 0.95], "anchor": "x14", "matches": "x14", "constrain": "domain"}, + "xaxis15": {"domain": [0.5, 0.65], "anchor": "y15", "scaleanchor": "y14", "constrain": "domain"}, + "yaxis15": {"domain": [0.75, 0.95], "anchor": "x15", "matches": "x15", "constrain": "domain"}, + "xaxis16": {"domain": [0.75, 0.9], "anchor": "y16", "scaleanchor": "y15", "constrain": "domain"}, + "yaxis16": {"domain": [0.75, 0.95], "anchor": "x16", "matches": "x16", "constrain": "domain"}, + + "shapes": [ + {"x0": 0, "x1": 0.2, "y0": 0, "y1": 0.15, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0.25, "x1": 0.45, "y0": 0, "y1": 0.15, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0.5, "x1": 0.7, "y0": 0, "y1": 0.15, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0.75, "x1": 0.95, "y0": 0, "y1": 0.15, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0, "x1": 0.2, "y0": 0.25, "y1": 0.4, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0.25, "x1": 0.45, "y0": 0.25, "y1": 0.4, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0.5, "x1": 0.7, "y0": 0.25, "y1": 0.4, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0.75, "x1": 0.95, "y0": 0.25, "y1": 0.4, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0, "x1": 0.15, "y0": 0.5, "y1": 0.7, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0.25, "x1": 0.4, "y0": 0.5, "y1": 0.7, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0.5, "x1": 0.65, "y0": 0.5, "y1": 0.7, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0.75, "x1": 0.9, "y0": 0.5, "y1": 0.7, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0, "x1": 0.15, "y0": 0.75, "y1": 0.95, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0.25, "x1": 0.4, "y0": 0.75, "y1": 0.95, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0.5, "x1": 0.65, "y0": 0.75, "y1": 0.95, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}}, + {"x0": 0.75, "x1": 0.9, "y0": 0.75, "y1": 0.95, "type": "rect", "xref": "paper", "yref": "paper", "line": {"color": "#ccc", "dash": "dot"}} + ], + "annotations": [{"x": 0, "y": 1, "xanchor": "left", "yanchor": "top", "xref": "paper", "yref": "paper", "showarrow": false, "align": "left", "text": "y matches same x, x scales to the previous y. Subplot aspect ratios compound"}], + + "width": 500, + "height": 500, + "margin": {"l": 50, "r": 0, "t": 0, "b": 50}, + "showlegend": false + } +} From 13acf8a66e545e1dce99003681b7b8e7d6deddca Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Wed, 18 Nov 2020 22:14:26 -0500 Subject: [PATCH 03/10] baseline images altered by improved matching axes autorange --- .../baselines/axes_linked_date_autorange.png | Bin 24432 -> 26264 bytes .../image/baselines/gl2d_marker_coloraxis.png | Bin 47194 -> 50471 bytes test/image/baselines/matching-categories.png | Bin 44170 -> 43440 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/axes_linked_date_autorange.png b/test/image/baselines/axes_linked_date_autorange.png index 46b9e97cb94acef1700b01ad9315f60620be261b..ed2bcad1b17cebd9dcbd65bd85aa7c0103bca5a2 100644 GIT binary patch literal 26264 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

FR&D~QTdnNqH{up$LnEG%fC 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 diff --git a/test/image/baselines/gl2d_marker_coloraxis.png b/test/image/baselines/gl2d_marker_coloraxis.png index e1ec515186abe08d40289e0c89486ac7a7e3ee0b..4724448d7770aec451065b5bb9fd510ef9f618a8 100644 GIT binary patch literal 50471 zcmeFZc|4Tu8#b=hmNgNwl!S!Jnq79XB}kLBn_nJJar|;AIJn!GX-{)gKsqVS&>%Ok*JkR4i&f~luYN{)ekuZ=D5D<_lE6H6a zAUKEwAAO>u;9vY41knTptOUw(GB;q5xp+d@jgK3(BQ&DQUy@jLsAx#f_iD<$3Ra?` z*&X```68cdDkJ|^@42ZwR!5U+x`O+>PA030o(IR-fSAv_O^X({^BM0oG!=6+mbZ>O zBQ7qtG-1W;eO|^(aGc}k=RfWhK|uWE$B*=L>fmIYg0*?+1!~p^{ti)G~(fhW#9pk{_zk_Lm_lv1Sr$!cxnS zMyGz67%)-jAF~O5k^cWD>i;tn6^$kq-<-=Y*<2`h>NAg?SV?o-0UKPBwe9Uq{%Z;1 zeT4iN8YSr{0=Qn3uwtYC;mMZxke%(#RO$N%@ApaJ-XF5+%S&7A)`W$!O%j}a!ahDC8~OM$ zz^y$+{@YxBtK(enrP*E?@Wlu|6G^Yl`C=ty)G?kmayOXgFrj1cNBJN9P4GOGoGnr{3I^k=dBG`Joe0R6qXfEhe#*4YtrbR<$ z$eBHXo3J{~x-MDZwSMn{Q3>TCLUOr>)a-B9v!r50oX!;44Fpalc(zavOYM9+* z;Wg^rIFL3e=<-EVwWzx;T;&#v&$rtdOflVAda1hE1|p851k7GInT&8wo$^k&UVTo( zb?=>>O$YJqubn-LFW@96@|qu$Df=D%O8vx(#h~c!%N6FNVaA2BSzg=IGv4Vw+Z*4$ zc4{0FL#o{B=EH!Q;qBs^n89{QrIR8&M%=%)D=vOw3s15iDtjRc&0J}$@EG|VayTUd zIAw+`kEplG^9h;ZxUL+#`ToK~Sw7Qg(QU7kj~lrSL3B-5Zwp_U`*1Wro^gZjcI3=)ZuYc9uO;FzW(k{$An(PGbUnL)VjW37(+-`l$!bFx>CPe

w) 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
Wn3BbRq{5c!S$QN?W@` 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

f@46q{i1)3ksYMGSjTIOe*4 zYWM_B2vtHtLU8)zlN0a$i*B}8Jtu-lr%tjcAT?t0jw`_@DyOxEh88rCM)?d9-6Np(~~Be#C9QEAn;lrjRpN!{E0E za|_LMYxC`oUh4gFel1#9N_}ciXq@afR!@)cXVVxuRWEJ@U5b@I6NBT(6(5KoUMKu# zIj_6NaKV}gwHi6K2q2D`8GzJ&JqoZYk2S5O#+&0zVyphgQ#(G`j{+!?aA5ev20{-?6RBir> zdW0T?9FXZ5AXp!?3i^sxP4~e|6&q zioe@b2G|7`-&7VCW;uVGwRqHM<*HY<+VxHIMS=dgclT)6LnY3l7?BpSlgIBod`E7I z>x_V$M75>FQq4s6_AyEhl?gyQR(H45bW z;Y}}EV=jNNtusUH?>19b{Zz=Om|(rDo~n52DIQJBdZd?oHSG^Y0WinsZRK|8EEosj zKXnVnXnW^POF8o*BTU}c-w^o+w#L&W3Fh*Il8zKsX{4;*?6Rr;wTBdqxuk&3H( zVSoevd2zb6OuE05JjVr2PasAQqA3^ufqM&acPs4Iu)pjpn7qA9`E}AHgW_ zB|3W4V(($WnGs%-rM;?j!QPkCQcLsnI2l@HuX|`muface9v-t4#s0t#&|>6V7*K=S zS`^4Uv>=A4%|s6Bj2jR2?}k<+5hBX_;E1SzI#4r(BJ< z5y|xf2TW|@4q!FvxYX&sf_CjcP~H+>XvLB{N%-a}DcR=lfoRN>%dWO5IhBfAENo

Xyj7~a)6Lm^5v83X;VNtybdc+p33w!6+Oc11AB|>D9)XUO0>7`I zu(rD)h_*MN&_+m1Uigkqm-LEzbK{|D%{Pxg$U10R%>m7wOJktn*#I=DE*$Xg8^L^) zA&o(*6f_@Ia%uo);)sgp)i(UbgXBi-O$9fbgMM5O&=*=1lNTP2OI`35G zQYFB}01byEv5~{ubqZ+1`)ow#b!1QWt$lY#A11DQ3IUS@mFU?WjHQtdETLES=&mwR zqc8*(;3uM!{d9>Ub3R$vqDYq2&*ZXJT0u5ZP*D9xjJuJAmqAmSZ9sv%-xCZv@;tp# z0&T}_uq&BqUc)B+#YQ3`wp!!wpQLCz2!4n{5W+WB>9TeC!aHYdahqKt@LWiS z1zeWvI8s@TIO&R6o-u)MgUUr|csc$`0wP${cjEasa=}gDnCO^1t3LPZsNxITKzpa0 z=EfN~t(8)a>-NGokMHhZ3Z)B+kxgR~Smo*pKwvrM+_39@)srgW&*qyh8(7crdEMtJ zW8`+94`Atr;ItEyO@R$R(UE-QhoHQlnVj`#MEANAQW%k;6lFdJnA(bb76-ASYj7)=D0D6}<%No{nm)$Q+?{rZX9(}AG zyB`Hu+go0?RE}_vA#i@!88)L2NaWX3f%z@+ypi-Oia_~U&`h^}ssY{g1uU=t`cUm{ z*iYQa{!C1Nb8zrZXt71Z`(I#@eEU}CUdKK+taY)dJ2_l75H@WNI-Wf}Sw98++_NA- z{RQr5DA4v=VCJU^n!Vy*m>=y-dMnd&P|+wAg4$Q1^j$SB2=gQng4w3Tz}QlO4hDNR zBOORmwpL9_lPL~OpCpvJOw@OT5D?A|>S-q;n@>y|d#^SFC%#X$c;-Ia69wFr_4m%> zgEzFl{J4mFP~L8420FhZq`CG;#%&K`yTXt(8$+argdv<1FD#gU@tuP1`ArY|X-~P^ zM;|^yMyCSz($!hM5E9^4z0?V}Kl4flgewrS_xbNl_-M3*Q60aMTsYtYtPXH%KvCl~@y*IP;vtIVQY};x-#J#tYxlBve`@+spuYB4Q~uLh{QGVbG+x*8 z@NmQNpLS*ZT{S)Q95}}{juh2@t~0quAb`blM>me)V*eeFLgsDS@+JtC@^>Th??=f$#tT=Z!sm4e{_9~kK^NKbT{+l)ZcYJ@%Blmi>S0yd`d2hd z;|IEnJa%N>e?O`ZT&jYcr_T2M*L!^h@(0O*7$d#^ew2L~kQO~A{U-fikH1Io5HC_( z{8Id%wsi2%qDG+IsqTqA+rQowue|xXJu~#LN2P#T+R%3e(U|{!*Z;Sy4=FxSqrhqN zwxdM~>mq>6N{{pG`S$kqSIxiXMA)jkFaNXPh%9;>5uChHp&{|u%m4x|<*6xRTK=-My~Xz*3mBI0f%`_{LF0XUytXVqfElIwNSFm)l?G4|jgl}vVFrpK zUE1-I5}^YCqYTs)K`+4^xR>PoO0gdRkLo}gZ*b%@;g$UI!nNDS%--pbzuwv$eVEw+ zFitM;o&AM+ygLm5#dLwT+QHu7!$sa(ZrG4CzokMC;DTlwtU(_M$D22AilXo^XY@JW zHo#qj7p%U3fQwv#gKIwwjzY8(zFja%&U&!F&VkRjH&ztM0Et}yI6ZIS0Uf_}wbs*9kTn8}kp)bH4HlQ%$ zd+0pXWYPBWA~y)d`7B<8I-8)whcEbtqUHl4Ht)vWF{e(E)(Cn%=S*-pQzfYEnV{em z>Q;z0a3>05^?0rZqb=!JOQ2qnKL5e^)XC+YWsH$^ORxLs>Qu9(Bc|-i>HZhF1fVdL zrTKFhl#B?p5sc*|^2EjjaDo&@3(r_Q6smmK%Xaa)P55_kIm-XX-dp}f*@bPR!%zwm zDj^^xN{6&GND9(0lne^ejl|HP(t;u&-QChPz$gMrNsTm&5|T0?jlf=W$MfFLyZ4{4 zKl;PDu63R3TxTE0BI$!9_uhQ=3R)!bY=zSfkMbP2Ng?~u+byTR+LCA?4lOM$Bt8Go z06|6p)PWBdVCrj0C^tGy-NHqRhS?yQ{!EN~Uk<=A9>CX^9Y6}+Uw=cSR-soI4RuFN z|HT00^T!!7{9+FBAW@acR|!CG1RzEsQ%5_C)R&+`0}ufepL@kl4t%m1&mTuI0F)d) zCFs3rOjsJZu9YgJZ2v?FffogiTh$(DsD2R4xgHYf7y(!V0PR!ec$uMwf)opFPGk^s z(9sjZmRJUHSnI7HK_CkM0(f95LugSHjF97yVep4OLnHITOw&$EAZGG5XX?De7`Qwhx!B32p#5V3~50f#B(9| zA`ln%8j6E}Jpr_{t|RhK0~SC3>uERvR|OnGl=C^HftU#)ue_tf6o6HrjujOAab4me0nc@e%fC8$ExF$!C zZE>GWml^U9szzR6fLzwOFBL_Y6LAvaLbVt8@iNEfRNJi5bBeq8DExyt$o$8iOuGqC z!%vzI*;2v;o~#uc8Zc76+Wltc%9TU-iu}f1`A|NRdV-RJb+pFYeTIu%h$IVi9zb-w z_-@ri7A*KI1ag~_Zc!?0N{{26$pQj|^)8a22#TAfBrJ@~Z>|Jm6se|B;&?|`D2u9s z$T1knHFVC$C_-eP=FaPD%M@ZH1>3`}&Ks=%KK$2=eJl?F(c)*;yf>T|Clj3pPbs-b zIUx#4(5r@zT0Ki2f1r`Sq-&<6fma@-`&HEOTgj!{d5JrOZ^En5ry$upwAwoZR8Jey7iLqs)}w#YtoGw;{55=p>PfgR))`Na z75klF#BDX~vwMI8p!Y*k2%7#6pL(K(h25S`YA`w~!%E3h-{zgs{j{Gt1ufF2HBGpf0_I<0O)8zs`o-k<2k) z62-TS4RZ@(dT?P0z zu1m^&DtYA1I3gk6kZH#cPV(Q_ zg9=Ao6iHx-ckPyUWFxB~<^_eU&ij|pdmk;qus;14;NUAq@gSlQx)4g5Xu39$Pt4L! zI6lTy58!#)(Y_~0QJPk^%&MWrgk?@1<2@#~Bi@8|Tw?=~0DX3JywmK_OP;6D=nXCfgTkk0MZG{7Tk}O#*bsg=XDOAY<^bl*~Yrozu*+` zwhsx0yj4lO2eOr$AfIVfuZz?c6#S+9=O(kmdkuUDmBfO!^v=tZ&Uhckaph0+BbJk4 z-H6CPiU~OHz3G$+tK4NS7OK#mTxyBcGe0iko`aG zb$R80y^cX_>is1W4B@bf66Irpdj!T$VroigLRfdBYc%lnDBlp1-UUn=xuz+$#Vk!U zAv*MnezzX6gLOi6>$Qr zuX=`dW6VZZk-v#e)dTPv^&;GGsvqY5|NsB~UvjCvg2eS20Mq0br0?%>1)~3eyrEZL z5NoF-WTG6kINBP#x99nQk55vLp($ktMV32%Rh7~~V_1?6j{gC0x4###PRGqrmy!^`pGi(t0!0=x0iLuTD0Jq@A>i8k zg5%treE-BdeaVZ78;}6#%u&_Pc2dho_`F$PY zeJ1XR`8wK4;%{q9;9K`PRxe*aIQR{)6nl2(Ggk}`S@Ple~KyckL=$amJtMz58aQ1w=@ zsUGG2?r3nd9wVD0@iaWSIM+VkT~d;J$XQGAH_g&=Wow|AqS#Qk6@M$^?Yc5ulZT>AL+ZQ z-W_MmU(}k(%J$nd%MNO3AB`Qyfx`nCPU#)jj3iWQ!5|)YyD~ zZKNP#Po}ckxgDrPp|IC?z%VvmbqB{ax=$+r=f(M<>287r`S+_h;u?Wq0&B8Ran9xa zb@4gC(n8I%6k+B{E$^z*Qma?-luM%7D#Am(TZ2E|^n$4{`NgAJKwSigYyU!YvrJe6 zI!Hk3y7ty&B|VB83;)yCy*u_Rd-r9E=gw_=-LCV#2hi$c|30ljP`Un#OKI09o)}iF z#ke+ASDfMY@v?W?q9_w6>FgV0-iT;p$fEM4#e~g6XhTl>n`>&frhX>oO~&S~bafRx ztu)>3Ei=^nlVVjczSHYp;q5kPMl_Fks5$?PD%5AWCuuYg?(<>j3SU{%o74@PzB#^M z?-=Ok9-9T>_(u>=2!K;j87>tAoS6-*rUU{Hh%s|@2hWl|hIHzd{ajL8W*}YJRvB*h zRm7QY^J0pT4${*;DTev@iXs!eTmwS74v%Kfk_CnE4AD=G4FvF+(VdT%fTf7d(RaS` zWvy;nB^jxtNSH^C?0m(@Vb&98*q8ieAkivDh`STmV-PepIHkQf#-w zPRzKA-v+yH@Yv~(r{BSt4!&yLmtpWUvdWD|qO;&>hKiHMIV4J#5wTl6-tA}1h4x{j z0tQ@Hx_PEa-x03gNR|RH5?;=HK?qqF-hTbVQCmJPm{E6XPD+HM&YRb=LQ__^A9 z$MD7Atk|ORRba6gbbC#2zMHdc=yowSe@2)GMTR`$eTctDQ?8@nK+eEUJq<5uIXO=S zv?cP6Z4|nj10js`*LS&;TsjkRFt#5*S>XC5d`v8@}&bk&|# zG)|J0J66e0f?>q19+BjEqu&6o{Mq>@s{=2L$D#~5uq|S-HS{>~Yg1qqP1PNhpvn|2 zOhX>ch6)&HaUGX&atZLxLa&(GRNm#Hw8302Dl8)<)y0;0|;YOJ%^k~+nd?V@Y zNyD7wRy=WHdya1+x{F)GwxvFP{qG7f^j)4X_0acFfhLAJ?{qN0zh+(5m>IE}Dv-g| zcCe*q_WB8F?WZ4q{Wx*Mm`f9sSc{_a^{(JGve{OH zR+|*^j@O+~ih6iz13xs-Y^gGumBIgr4QuMgQm%pC!M5d#04j~W4NFGgjxA^8?3;y3q(pNW)j+;t>k*tyq?fKT#BW(*lZ`gunI>5!!hK%)X)J0Zw91A#@7_ab zON%leEJpn6J- ze{q7!yJ~MhWeQNDm|?ft=~2hzwAzoxnD9U5OFO3EQ1dv{xQycr+FaL4kL`+ybJd-1 zBy~_p+^+mSCkGZRrzSO`q{evbB%wNa^W9WY6O%7}6rpgDf>smf75PP4#?x!T6l+MTylJZh zKW>EPPd&8*3kd(_RYjk*ZnEWI>-5l!@HrIjBEGWCrvMJ-wgJV+&k1RPE+g{f->;=C zdLG^Fc}oa>eia}rA?ybh|IPvo^j!rF00wvB^qcT9+lDVT#(Ya8M`Xyzbr*WEhu+A8 zG`*@vF*F~ydXSw_;H=tZtg}W}etz@X(biwEjTGz$)4ep!a1d9y+L`|>`(B!buJZ2b zsW(JvW0coFf^dhBbi8>krL&0u>})&8K&xh(_1qHg9?U9BzCc_0;7(}SXa%!1&~x2` zs^glgh(Sl{gDWur7tJRgEcZjJKt5im%bHsm?7H<*4BRr_#llYOjj! zC*ZqCXhzoI_yXkdN4}5aFs@WC;xq%XfE`Qz@FP>6iYJY^sd)vBtIa}K;BqF}wy}B? z80`69C+s@HJW04d*7q{drH9#o8e}6>fW$wNo^(iZe49mah~BczRtopYjms-xR}FyJ z6pE*BTnn8Dx4Vk`M2b7mCv%*@BLwJ8{&k$!emoe>Qz4y^Vem!4w7{{NewR+G@^@n8 zV5LR?XUJ2=UTX?Xo{3%aO#qA&SdChsIBn18fc3ZO*2LqIe4=WPcaeDJ< zge&|3W;qZ-IE&lvqQf)5OO`BP!LJxWo&*}e56({Z6HH%AYRjF~L-KHi%)pbq_Z?dKei{2Y>WzP*lif z;6|xQT~P%pJ>Q-H6@dIM zN_Tk+DCiYH{=hEfz4->z^#O;KDT^X0K6a(*a}t+hapV|~C6s}5qDt=A?~6-nrk+34 zRXxg>H5O;p;{hLnr#A`VrV98n<7SsiKz{@zsBcdaRw(i?<*ou?>cP!a=wSQ-Yj!`V zzA=CP+yz0}cDNO>Y=3h)38iDL#M$aJ-6XG3+}#PSh}Knip^yEiD3_Pwz$@J(d$h7N zz7}R6eUH!yZyUsfxPm+P$J6A_Kgu|=`%;6_xAfg0*I(bTBWIT71!$m-1N*`{@y=lV z@E{QbdIJZRuNjB0k~Cr}+WaqET9#rp3^KbJY0@3UFIC3Lp4jO()?A~;>Vwu$w!_8@ zZK#pO!jXMy(j|d7f}Ro7=PBjV*~)Z-_I(%^e8jgbFWXA1w}Tg7AmpHN#wCH6Ip8m< z1RS|J4)y?Q-i1n0*Ptc4b(l~>>^HBGX}OgPMatN-iPQ_BBu7W(wu9g$}Xc`;*ZZ zaC$F;UV0yc1fEnq#6>nk;X=Dvq|;&Go4R1%!4rf2(NJIO7RyBjpAU1A zasp?dYemp?6QF#%u~Srh!5v$4mVnh<9kta?pE2C1+?V75ibV@WMl+PAhZIaA_U(E!L83k6t` zAZ=pxPE(_n6Tb{5s1fm2Gf!NI8;qUd#lFw+IcE7`G{6wg!Lql)On}OywExW7B7h&( zUwNhxhPPb=E&!OR`&yct^ko2N#B2m;-;Poiv96IIpMCop|AB`%CTTHvYju8UihaG- zfCD^gtAyuyU~$dzJV@)8K<|v(m2triprI<|UrY|U?ysYLV>oMKzTjBfs;%J5rJ(1m zy-cRLNH9O#+^4U29cO`jxqTkT{)-q^n4`F;V4J#@3_kfHmB+e0r@}h5fZ6F*3r0$t6%Mh^H8#XaAomLR#ELtzDdkr z-_CSQE@W{7W1lHV7ei@hVx8$FA9|V9+Gu|FwhBU^vcVsjR{!jLW#++jTQ(F<@bBkD z$fYAeoWiYr4;|l40QZ@F4;b?4WCNNX3#@+{ZE!TgO;~)JS!&6@e`E$I!51Q2UV)@L zJo>vUJ}SM&I>xDGI|#@y$cIJ}a19X;4IaD34IF#NrN|HtMqU0|?F$dDzM19muI<-YEEwyE9uENZNYA zOtsmgQ*ocLRKh96z|KFnJn(%D1}IMJCO)rT*B1v)I4%;IGH!lnBB7tT1T$vEO8V@9 z8JO{!8PLLd@C*^J9TylEzY$}uNyBUWhW2vL)mh#X&c~ayLxFkwI}a$|VP!Af_X<3b zu6Jzub5i}G_Gc%+bS6psyeVUj=#m%gZYNWbVr&J0FAn&d zvXBzOIA?iaUgLl0@&!jYvDyd-Cp;B1rF>v!$4LTT?LzHG0?Ixo5@o;qhGZxbvHQjH zdLU-Or2<489(#d@>QjralK~sC?>JjJS^Sw=wE@r*AX@S z8-OqZ0-ve3PpFPR!Z!gg;y%KWP&CMi#?8RN-6Ycuq5r#j#q=mU%vt>1dO-t**XFAW z$g8|`HSwkWMSig!y$H~fi%t!5B!K&8rAYZyNgBQfHu0GL1{mpvq`ks75p$jARSds! zRsL=s0dBSqIG)l+Ew$}&zDdPE)n$^zMF2yg;v#o%c#o@ixZ-U$5x3L?VZ$~8c<*j_ z9{3aum;3biqjWlybIOSm0+_$PWaDlA)Wh32r~5HBj#vRly>URsqIy`I5vuGW4#p|x zW27Nt0=V(uZ59t8l{^J>i_J1m!wad*aB zL(N?;RD+mO5}M{FK?6a((l#8gJoB0wjgp1lPWw1!z->!kW+Sm8 zrhzXLMoZH;mtq2jL2Z&qe88lx;zhRrjKSj@CE8R61gqcE@aA_E*|3tHA_A|$tylAE zEn^3dpZmdP#8PN!0MTU4;?w@gn)RPiGqI^jF(^k^DGuB%xwr67657{f%v%y+r;9s5 ziWT6|$R>FKqQl?x6DjpHQ>(s*lKzbtd;uUf#fjj%Qa8*kDgq{vA zD+Kz$crPtk1x(1hE7#iPX2J9A>6Ud(5g20=b8pruY ze7+%D-G&*CV08{xiy&fz63_pCJcyfr;Vr=a1&EQI2E5Dkl&vm@rK_ zAsKSD^F8herpK*V$K#^y2Ti6-RG|~KPdh9yPr-_NuKl}WhV!mlq8Sz8oy8V{=AfLj z;&|tCgxwRI@WgHoYTUxe19#c{cyo`rsmYQUzJ1Sm)7exO{lpO++B70xbV?>$g$V^8lEckO&!1TMf{GsZ0Or z0NKU&5aOkNc7B*}8p$rJ!_8+Imli>gAGdNR9#>c~nJ}d{e)H8qBfLm=`6*ZdbIRi1 zt{9C&dMO*-AO*}F&T9=C32??GkU>0*Q1-kR@)4vIF>yBgYM@pZTko$)!T;H|!Jcib z#PW}~)g8xg2CDeUj#Hz!nX@d73T0yOzg?RDPVOJJoG)$MX|rzhMv=ZS?Ho4s-k#z6 zEjg&KN|q0}b|ll#Y?VMXqrXID?tzOtN~J4T(V(Ca%MJ$6xpA;~nm@Fi#(Yfd*V8YZ zfEvyJr1by;FKdI|1AJ!bOhHAo6x!vEW45Z@ie`-am8vqH}(Z^_P zOBnKhBV%;B;Qm{psWSeJm~M9v3#-3ol7Z5F+U~sI2V+Oc0AJugfAQNfEBQN5gvOH? z^cDQ)L6Pic%{`Z@e>M?IU5W=ALMhR&sQ)4e=6_FQEB(L|0glo&Q**kn7L^3;l~(KPs~^l zT)Rs-dZRYhACc_ul7(M#yAY4`iB;ht%$dvX%CizekR%da%KEc$Xnyax z1~aKtmxqlB5V%RKM4GjGJ)&tK3CKmhTE(D~O}l@?Xp5fvd$l+za;&i=(27jJ4M)Vo2Cx3^9Un zwQne2L4wQW1o_~|l-=LI`~A;X^IwmGUbh;!7lSH&GJ{w8*_ZbW3=EDl&OZYrBjA4y zW1u&S=S2861Fw+%`0?Z8w}$fPPkwhfGZm>$%ib?6EQI=HPR`O!a)^t**D$Lu?}S1C z7Q#-M0)m8<7<)0e6#uW6pB`=(M_uQLrZdmSUW?q@^K_U;wk$f_t10*}Ss_;4E3Iyy zc&+g@H-WCzU`@O(RD=FwD;ae_0VHHXb%=b#klM1rNGA7wtDuQ99h* zJm5#m2MQTIA4ew~?$Wj;*1A#EW(NlJ6O)rUAd^ET-^!jg0))ydVxe^O6$Zmgc^SgZ zV|iLnGn$Do=u?HT{cqe5Oan~Y+)SSpwozto=v|)Z@(^bB_dX{4b#cfrnATDSGZ=4; z1^VldNcY$aKR7QcB5N%@x3C^mDqD6TOj!g0} zx}lmKZg!KISpZFJ0LoY}2x`N6yYEml$(YZzW?B?~EVldhZJif;p6WNH)tvLAKFzab zz3;jvy=+dM6nf8|?`43BpFmY@)rF*>8MnT{>@trUrdy8fX zCl13X^b<04&hzNCo~PFM*goz;9~p@2r3*TacZFgag&F)3qgk*!k@N=?P7-faE<8m- zjHX|dta^b%13!HK=)xch?eVS5gy-Iz@!6h;U|qRB9(H|+?{^~f=oL4I#~hZs3Nai zuT%G{OB+d4R~VmcKKS%CJ4dP-c^y@L_?u*dPY;4}jDM3Rp08H{Ggr?-%cLZ$a=hcG zF6t>R7+w~(b&x7&C=m}a+8?ov4TQ|AduFt{bMwtMzPUA5QFIGS&oFUfF=OHMNYPZt zk?CfAUK3bV`lFc?Z<}MIHs_7zr(0}EEVD>XKG`-Xcjh)Nz#o(VJ)B-Y-9{k~;WgLtB z(ua>pGF0F8gUqvB?3<0eZe*TualpyPL7{#-x}$z^lHAm72I`PJuC;x&yksBTWSBbv z_m7Q^iBT4N1t2e@fPbR|v=gIEH(l!>$n%5FvKmwBYQ&wnl!~msjWIEX49on2A78)~ zX0{OAZvVB62sy?4RDUGvR!#U}t~W*MFIxTz)6lnXubI|Z5`r{eV<1o9QS%$wi$BlO zMC`9U)z<+U^IXgQ!)>%>1L-w`<~yzrXOgqDkT%INzrYFDC-_$oAs1KfE+u>sl6;zS zP~o89`N5WyGgx2tY`4r}bgW6*xz(as2ObJ|V|0RoWCv4)RnKn`J1}KRC3l$ArwrYc zRJv^5Hfnuch_lh%iuhN>H$Di`;kb*>(I5t`weI$7fKKwRuTbFWH}x_aX6+rhQ@YG) zthVLqa;*IWU*AMGM;{JNk1aR^K2hMa*8`bnUM8QdfXx=Cyj{PY>iyCIr*z(1-4mnf zrLJk?bzC3|` zlQ~;~0wld3E9o|X^V#|Uf-;(t*ICoHjdie z6}_l14Tp~$#!GVJbjgkN4$cnumSY(On)M%A-ZDQv_a`^b`NpTNp~1z@9$sctUG?sX zY|~0!41cWw9%TEq2R+AI&27odR`V%7?s!9jdD;Hc;UQP=Q6$rE&O%*vgR`z~Lmsyu zpDyFIftqij_ttrnf{r!D8Hu4Tn<|Q}o&|R)CbgAs@`g0!iPUJO>m?Kh@62H!*s?Vb zi0c~*aGTDZ`96nl7539sJsiRC9#lVF9v?TO&iuH^l08Ys5ENV7TFYc5gV zLE!)SA?p4^X?>MIOwJ7Z>aAw_e_jMKrUAOmq#At)^{ZEk^tK1w*N^8v4g;wyiR{*V8 z)!Ny>w2jOK3lkS7%lYP)u!%i5TnF>TgauOV+@)3?ZuklfyZrg9FwUMNzx*{<>JHE1 z$o^?3ijP$(&taN4rAHVAx1_05(%td+Wm;pR>4gbA$hWoMsp_6=F6ymYOH2BL-y$cR z(5J5c={1{xJJuBH2dQ@K(kNx{r$!tXhzzxupP-F?P+o>-XWyG_vvA5|G=R+8QI9YB zS^SUte}|tFt&nJoNZvNl(suECTk)tPxA$&DQam?{O@xqe>C)NnI>mjz!=mui)T~rS zC{{)C7ShC`+nBL(l=%1V>SX`V&e3sot)hNgn#hN|oQ6EWO!uy0`LMs_TCx!m_{m;p z6T0^^ykZUwujE}p&cwOopDwg7?9w?0OLL!Z-nnqwEfUMx+SfY~f>g`(K69%ElChDw zp5Zc3&DAroN{kWBPYaqjqCwa?XDQdor8;Y*@l(Ix#24V0xj25CJp(;HAqzC-Er$ft z%q73mDsFP6O~w}MW^JKcAPBF6EU(7$8|8z0aT9aQ1B2I-d)V)c01xOVI~GlsS=LGf zxZ2a!8<)*6qGIJ!?z<_`3geLZ`p)8!2x7TUJ)&OO53Koq|FyW>(K5S{HO1OzCS~$-tpG#86URiv~Ln zEa_67Z*#n`kj?KD~Gh6#H836*b_b))VG!JzX<=f#;TaPaw{vg?44 z%%t(kd&{hD_u%WD#EcZD7y)4MLQ$tEDT>F7X?$6SuKBHn0{GYyp9-RbM?k?h=?WO? zf-9hitqJ2WDTCHv$DagM}A=Nb|mCBZ++?ytL z>F3-;Bk~wgn-;KBjjWjda4&V7xRxo~bH;$U1D~S(KU8Vk%SXTpH`}K z@$nVb)(X{pJFY%GS6@6AjB|1E5Y}w7Ppf1vD+sM*R9;*rS$)%S1<+*olav77fAN*g zBLb{sd6StBNc)T`O_c!_xB#R$PoCYy;u1aV6A}Q#xjxKLwkh3_K-4ZC>CpSF=urPF zbFzcclk{e+jiez-*RPgmKVNEE1Rsj-p9i;>x^MN=?+q0;rWv<+JDbg@E;?|t$adM- zykmytn&M7(+G3A=xdFjE#?#7ZfH&ueoH65FkI^9zdDq-k{Oy;QuiF7+1XQR6dxb}F z98~?a0LsGik?0gJ**{?x{iFwrwdd#eXf5g&c9^$BzXE!d8P}F5I7*wfYd%kgKnW{g z^2^{{!OPn#ZT-2s9SRtpxn99T%#F=|kf85J@Td#}hCT9s=d6QuAf3&a)~^*wcM0hpKO9OZ=lo8FX_16vkSEbrkB$jmsnC&hlclvkHnxc@v|~UywtX_4MSU?I?DsuFJcc(h zB)pLa&l{q|!gH|{Boit;zeG3c4#+Hd~X5V2qPe)|pNC#rDO zni|8tma#abDzJu3+)Kgds4^)Po31s*D<1q2b4$yQFl})jpYGxJs17t&Br9 zt=aP;$o*zbDo!+x0lEG>HdbD4tu+NmY4zrYwqG7c--1At^Jtq3r!4 zM7mNDk2o>iJ)%-csx#i4l+L&{F~Ucx2i2@ZM`PE1TG7SeA%(ctEPD0-@}H*7&a5pB zCYnaLADuBj?L5d?YCp6OwqZ|7N{pO>PvKV48J7}$7Ds@1F&4X%90txOO93$z1nY;2 zx@L~0!g`yIM$JCN3$sB2~ zokx`h4!${<9H)6gs?FiU<#TQ|t+k$3WOYLO>$fY&${``*6-rqp7&;8&!Nij)SD3Jh zQZvhX&*#g8NGA%hs+RB6vttf~PygC%82szO{qA+EYUF)Y5|YS?EfCb{j*j_KE#$t) zVhlsGf{N#fRR{u#@Cj~957Pg`;Nf4FHiSw)QxK!x;_?t}3zK7#*c-h}NWQXi6`zzg zYk7GJp0zJZ5;AdFpd|QpUkL7G9;TydpomJC!Qg>39#Y%cFM9su2cO<@{ar>|1Z_ZL z$gcQuTgP|p!QPj408F2lo~|)gq?r$bC_@Ju6%`^d0G))pW#C*!R5U643SFKmu z;srfz0mJWw9I#bgKd13sv-4!@e;;WTe#=@XK?WM_6*BgE5C5HHN6Te}T=J6u(<1bO zmP$#e88AcQFr0%|a{*x9TDYtm0H30y5|fgY-8c*y6!D1C@J+6-jTdR=9lyjoEB*di z_g1h#v>f%ldx1oZ*}|%x9WW0e(F~!&z5%9lgU`(EvR>;{-90_g7dqp*EbQz(dRFyB z@I_(izbie3AC<;Zs(?{@#E>nN^~=>OSmYXFciIirukafb3i7~Jd84(~{i}063xyJL z=P6nD+&?CytxlG1({yTaWCg=h;O*{K>H}YkCmpLtYIxpH6+mq}&(q>!nY9b0e4=O^ z7W@U!3{pK$9h)Ee5Q3p{j@HMUox|;N@S277*VW^^=9q?7)z?ha7v}z34WF`m-|?E< z2PlbaCJZ{``Yd<(OiK2w*Gz3hrBa;DZ{$dd?D_KeICHmj zCTR|We4_HGIpN!@e&DB>5CB?vAMk}_q;$)8u2L>9Em11EJ$iH#+?*H<#=TUcqM}+q zK`o}}G9r>~FMtIYjk4~4Nq)J>ySS&tcXGJsxa4tXxVku~w$FZ`Nu|IvsHt_QgJiPn z&ZOM4l`A;(wZWrDykb8^oTn23;~Ix|v6SH}?d^`cdb& zP3fM&&tj#w!CG3cG#zuPZ86JT6i>a`EDrm;@@g6mD+^yXufE-7tIjpohEB(-;L%~0 z59l&Fh6W18X1?N6jV3GSx3*6Z6*0tUs$WyZ@AX-w+${oWYG9tm1_W*{O`Vyki?{u~ zE27)I9AK>YEV}&v9PO;~l05V3^f?^~)hD)7`AO#)c(y_K7{6@kb~4)G6EU0J?~%b} z`u+yEZzaIe-b?Fu=c9VBjAw!obr}+F|C5@bQTgtRr6R*c)Q=7*sEDoauPc+))fT+V zfgt7%vq@+m2t(}iGqDsRxU59cX*9X?=Tg~d>=#oKPz3Lr0j2o)gX$3} zeU$(1(u2N%fdV{yBAwniMn?Vh4?l>bghdFL0!cAR33As!7*gfcp2st|DyI00sDzME zL=SZZ>v0Iu?j4S2@ENmq7f+2~k+)ix^~0EVcUM1+7Jke+N~CHHSQ&^s1EKH7%qj*v zjMp4t+zl2&Wa#Asy1N`&8EOI12B71|DEQXZ(g{|6-6#UKZ(`WdNQL70`CJWmG?qk^ z`2wl$k|I@J$9D|KEX1T93{<=UCGbjI6KHwM4+3{R70;uaM-iL?(3qHJwrnOS;p!^n z0<@g2M{S_v^sBF%NE5zd4XxvLJfsJ{=rznT4M?HxU010G&*xR*K!$jq$U*$#SQ_wRw0Lv*)Y}&v>v~MlEL6uuhNb#*J-H}Tiew(GiDX|m$ zm<*Hj8&>dFjbIqmg9?0QR&>?#san!=XsCvj@OVNdRvmypFF?+|pTZM~e?TX!-1w^E z;TkCAgyVx&(yq4*q`K*>oEl5-sBU(pCqsKM!=BtP?`;Ea3fakN$RO{zWb>}P+jHsX(8zBg16*is_VVsckz>Z)3@kvx7P*+2Ma1-?Q z@YeeCm`O)K=d}Uyf8=4|93p=D!ijrYUkTrgyx1`{8} zR@lnD(EiJS$kSd?b9M@9y1&z9inR8LUVi7F;hT4p{llJfJ6pK<-2>4R;73|Qo zbPO;e3>;No9=tN8=fY57Yj6Kpof&w@?RycJOF5cseov|O zc(HHj2RfeOI)k7(1uB&O+eds`kpO?JP_sGv_+@f-R!wIK*XQ==FirVbS-zO}fYFSPa^h<|aA7i+ngmeEmCm<%n0ROhB8k0rN& z+}m3O`kynlc?A^UG!I@1K&ofuMM*)3#9l1muvQr2fN~r-ASx2jXl?*6^a`dCq5sM> z(9brc^`Q`if#$Mx@}*Ob5Lc1;{hT=Xd(nz=M~Tq2mQg%bCeA^As5*ed#laU*$JjP)HaHH#wCR>7&Om;Pf& zJW!5L@!!nh3<*x5^HaZ*4aEEby}4zVNK+m8Cxo6*_&Z(np0(4&1ke^#zj6|gjUvT= zWV0MHVay@<&%A;CJ}}yP%J|3tVylC|ziP6pn>*PaGQe)LREM~r9QPg;?pbq#p$x{$ zxc)2BoC3Ase8EkKv=J+R5-whgN6&|)7q~5v`HZu{*WszSsxxO!3bYkx@Hf0qgwVjk zlZ*eymL@^xOBsqsKRT0gy&ZIb%zq}btH%|L;@4uQ9e8qtvGjde#;u9uODno2528Lh z_jA;D`>Z}L$F>$QBv9l1=R*oZn!rHDrwygS0RG;$L@l9UB{&ToDk+SBf~G0V^r=e9 zn+L@pn*BJF+VQX$XCo;8^8o9RfBFPPG*Nsd?`@xaD#J%C-;VkF1lo>|D&kcGMQ_Yp z>-T&J>=Vg<&YU69U!4KO!SLp^&R;r4gE;2LX}hRHX?4g%NHR5TKbes5+TOv|M?A98 zvC<$vQ-h&l(YX|-;{QGeiijO_@cOYnTqax2$;!`ai3U6J)&%dblk?ZJXhV|?o45m0 zajj`p7F>_kbpjvjH`A#OaXlcOGN>>9JPw8{fF8AkIuQPA2skppS|l7w%R`Jpo22<& zX4U-1M!Uls*S)TPs`&(ZN$)(=Kutu&WOqV+PCi#10uRghp2r1&({}q{zZJcvng6?8 zF$yT1O27=&)${?!`^VQME=)lG`3QAc82F*$G-_NrwkVB6exO{wPnZ|TpHnJKf?x!v zZ(eOInGi&K+7EIIihnB+UHYFs9t0V`R_N%g|9|%;*ofxw7Z`KIy^#vRCwtmdTkgOP zwB*_nVs|sAK@WNsJJ+$Tmp>i51C$goL*Or`9s1 z)@CW>hLxSCGb}FBleo^8J~{^blD(fG4Vlqe2lR;gVC093jqSzg z=;$rzJQqXJ@QWyomC^@NsdK>a}n&Yvv|hnEQU{)IL6@TAwZ`=jsM1cMZ^M$WKYR zp+7O>u4^)NOs9i(lJxm?)36#oXOKJ*&=Ah<((ER7m~3?RmVI7lpV#&N^WY$9#r8|# ze*6z52xyfHA#(X6(iFOLv&%7u3qiz5fzLLfJa1v0+JdtFaL`cXr=YNyhbzZn3)!Aa zI*ZB~lOw?dNa?6HVLGYZuWv21e@_3*{M2tF+Io1LY|Br_Yh`7nY3|yq>~uXD(56n0 zAWOwGG&G`Kw3(!fG0#7wsPMx)_m>+#VO4iE+Bf}wIy>`lDF1hl&kRG^D^@H zc*!YrW{+n|KHjn7!WE2#5`?#&x87L}IJlX=G`^6~6i_@Mk;vvIySTYNNBZ9Dw(-O` zAx*xpNAA_GmiL5Mrr?@$SRC0`+Qb**u2{!X+t2Rzev`Df4r6L#)J{o)TDOFfu7BgDoBI=0AjkZo<*H%Gi`eM)n+8E-!r-qK z#UiJ<<~V#OFL_9tAHQ<6-a@%r9G-Yn9tweE)!eG`3B5nl?FOC>sS5QkN?jD+>$f5# zx>1bR3pcgcFn-}CrZD6)!E=6HLN*g?^}6@vgFnW_HM)pG-Yn<7gMlzrHTh`22mSa} z`;Sl@xfNvtzbtRvBZ$I3_S6Mx?uYQFMFP~B`>n4>(A3cb(E|iu7 zdpQiU4GCZ(I?tRm;=pKcXr3KGO#>Ky;7ftL6!N) zoTO+RWUmyY<9;U~C@0EI>m|A1+#NT}u@G1rsAx5>gCAq!9f24_h%+TTHe83NpV;Lb zI{`GD`-aM^d{{BzisP$MNHiE}L^M1DzvJAeXa3T#bVUoL2zW(zS9#K92`eruDDH9x zTjcrPv-ak&i09WjKR_vnLm2ABNXiK{(F@Mts#;-tFFBV-6%BOqWhu$QBFv9Dfwkxo z!u`L0ZO=|IoEMOu2rg};ECQW@5DY|_QZ3;aCqAwNM=QdTlUMZGnVB0q|Mh`9Q$*1K zmrw_XVEY+ZA8&xJK&g&}%68U&zOhEqoTJftw^>R74xq-V)5T%daq#aU?a%_bM|KOg z=paLd-1icFzEHbf{qr5_swzH9*LqowrSQgg6H*o{{tE09J!lBb#&7(v+R^V|AmHGS z^9Pj;d^RTlDDUXEH<)nyu%`PqV=Gq2qM@Q11HEu3n+L4k@7J&^ZQ9^<90cn~R#lY@Q8E3N zC&#(1_HNB9pnGT)}-(E)>a z#PG#jOEX}fE5_Qbhl1C=YGyiBTQ91YXVtD?;MMA*zv)CJqOtE z7M7O!KqpiiB96!Gs1`3D;@27>LB-p`)Ks$JgjNXL3b7oULE}^9FfOUYp?P=Hr%#!^ zcv333&yzknd9mFmxh?;_9FL@&)cEpjPFh;J1elFKx^so=8ymmWhH}?`lQ4-QX7=$> zH0_(*qL~7VV)k}+Ql(B`!dxr9%bfK35id|&QeyGh=H&4@KZrfCeCBDWv={6pE)$BS2-JEt= zoXV7weihDx2iC5P6g%=yOifw+Nh!=eS%$)xMDp*`OoE*H8P%`uY(Qa51#4Mv*CAuL z-Q(dJBt=CF-iU?gfJ5DjEY@W;LDBSOH6ijiYH8y&8_m|AM z*l*tce`9#fJX4`|3XFMx6MmlOXx+9{N7Kr4MY+Ld>(r5@H=!&d{?#N+)2D`K0dBL% z%oQLlM}F+R9-MRkf-xJWI_axd@0E$-L8curgl4$|$&Ts5hpn~Y2GoR2`IJs4kirJikpG| z?SQ6FR1cPW94M-Kq5mhz~(^g-P#Jvh}f9;JC-bL+GWG2}WhGXAcfnd(^&x2V{ZeS}F;U%h53x zV8vp!8l7tdvarML(SAeRfNkFB#NH@y=hONqX2sWAB2xd}2az%EqQtce4;|BD`u7dD z*QV?7(ub=2-VxWwO)?A(4R_4k{^T5hCB456>9pXGR!tK3P)ydX#IYGOJ4}VoV>WZe9ntGyBxK=7# z@s-NT%1+ckWLJ^B0ou=Y_#ifjto3No$$pp2c>yO^k%uDkm(HsOk$Y3%dD^W4Ea*p3 z;SvmB-sAcjTr7QJqA&G1SS4-G%Dj2(>kL%i|LjeZ{&vZAxTwXwIfZ8r(I-x#aBkwT z*wb#5-l>26ID9`8cS>y@i%Uq5##yc@@Q|v;X2lysahra|HLH~)8?8-)&K-%#*7%(zHl>0> z@YSuCxSTuM871jldcm^1%Y;8n$oExWSX5hj)JdNqnZQ;be(a81uYC$4oG1O-LWU@rYZiPT=LQ%#IJ}%ij5Pcj| zk`V)v@=xxeOc7kxc?i4G`rs^e*^D=!mBgNgNIL(YPnaRdSbF4LSoK>}NLcs_bR)fj z?McP;s~Qv)gC4qrQ~q7N;TSR^nO9{6o})6;!eP&e$fmt>8&Tx5p(k}#c+D(n zSpL#vjI;rBN<10|M0{`0HB8`7VQ2H9Fz8{5HeKH zl9G}hiq|OF0woMys%1QQR$%z!cfbvN(dJDO$q6*4HcwT+@Q7fjUFj_@E|$2D>Uw-z zcxD)vlb3ftV0~~Ts-_=yZ{&4WOU@}6hCyR{ik$B>!aRq~mV5emlViHSK5+jtw3ws( z(CB`|cWr`0|mo53nSZ|A-@`w9JTLt*g8H1L;&>G%ZWn=b!ey*|P@ zY;t<--sI=x15`;xMdRsD2!AN%(IbOUO$w&n%cd|r!WRf-0KL{%Au?_WUJn010Qjc+cUywoHfwwI{S^)}e zYEM4a03Nt+F4(CC%T^y`aHF)^Gd;&7T+@aix+qXw+rWd7P#!4vuxClsP{q4{&f#!r z#9X}~RE3IAY6#8L(Uc;AB!x_5B+IMMI_T%0K^0EJ6Vj^6f%nVK9 zPQM44VSLAd2bx*o+uoSVW z@fCui`A?mZNI~_c@1jhj>Bp_D*SQ663ELo<#ljXp(eydilCFh6cW8bUOo#fz?~oK_ z$5uhNTo%c&Jv5}&Enqo?%Vt1EL^KSwTV7yQlaa^sz$;)rrna~Q)@*)V<7fkP1@^J>Y5?h{` z{P;H9a3el$Em~eUO=bK!nOPYP(*c|Qiu8K1Zg}IU7saJLXYIw-owkA;RydQvs%aZuW8%PsaX~sUSfXlSqn^(tMiYXlq zpa!J^pm2AFQ{6WE9?H1hdHX-6^>%311*vSt`vMBx*h3XpLBspjwlF}Gnrp5@8dcDR z1lbP7-!<+xbvg`?6MT<<*>K-ruu;Yh+rJydJ z;%BZPA|@o zUXN`XE@{EkGz?&eX-&=ItI;paqL&YVzr~&1}{F{mc^PRv`VXO zRz^kNHy#Zn>yXKh8Lq!&E&dvhk0onLC-Q|6vvZ;M+!VGz9ONU*}m zC91ktWSX)ikTDD@v$uLvx@U})M!EaCWY@P@zO1K_LEaBA(77)yC4 zwc4NN2RX+0To*@kpvISXUg+%PJ zquJBXVS~#hdtSswOa2ft$&vsaLA(Tp1jbL;KLjNNM$f=eDS@*D0ig@JEUV+NB{&&& zIvwJIrq(PcqgChs;bg!;>Ei5WVrTW@;C$N1Xd&&qGHX*6PP8EOQ|7+8Z7a%hKmN;I z(f$b Date: Fri, 20 Nov 2020 17:39:27 -0500 Subject: [PATCH 04/10] remove autorange duplication for matching axes --- src/plot_api/subroutines.js | 22 ++++++++++++++++++++-- src/plots/cartesian/autorange.js | 6 ++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/plot_api/subroutines.js b/src/plot_api/subroutines.js index 78bf78279b1..36d66ac20b9 100644 --- a/src/plot_api/subroutines.js +++ b/src/plot_api/subroutines.js @@ -670,10 +670,28 @@ exports.doAutoRangeAndConstraints = function(gd) { var axList = Axes.list(gd, '', true); var ax; + var autoRangeDone = {}; + for(var i = 0; i < axList.length; i++) { ax = axList[i]; - cleanAxisConstraints(gd, ax); - doAutoRange(gd, ax); + if(!autoRangeDone[ax._id]) { + autoRangeDone[ax._id] = 1; + cleanAxisConstraints(gd, ax); + doAutoRange(gd, ax); + + // For matching axes, just propagate this autorange to the group. + // The extra arg to doAutoRange avoids recalculating the range, + // since doAutoRange by itself accounts for all matching axes. but + // there are other side-effects of doAutoRange that we still want. + var matchGroup = ax._matchGroup; + if(matchGroup) { + for(var id2 in matchGroup) { + var ax2 = Axes.getFromId(gd, id2); + doAutoRange(gd, ax2, ax.range); + autoRangeDone[id2] = 1; + } + } + } } enforceAxisConstraints(gd); diff --git a/src/plots/cartesian/autorange.js b/src/plots/cartesian/autorange.js index b70ca0e24b7..28c44197a0c 100644 --- a/src/plots/cartesian/autorange.js +++ b/src/plots/cartesian/autorange.js @@ -245,8 +245,6 @@ function concatExtremes(gd, ax, noMatch) { _concat(fullLayout.shapes || [], ax._shapeIndices || []); // Include the extremes from other matched axes with this one - // TODO: find a way to only do this calculation once, rather than - // repeating it for every axis in the matched group if(ax._matchGroup && !noMatch) { for(var axId2 in ax._matchGroup) { if(axId2 !== ax._id) { @@ -269,11 +267,11 @@ function concatExtremes(gd, ax, noMatch) { return {min: minArray, max: maxArray}; } -function doAutoRange(gd, ax) { +function doAutoRange(gd, ax, presetRange) { ax.setScale(); if(ax.autorange) { - ax.range = getAutoRange(gd, ax); + ax.range = presetRange ? presetRange.slice() : getAutoRange(gd, ax); ax._r = ax.range.slice(); ax._rl = Lib.simpleMap(ax._r, ax.r2l); From b707c0f4372f116e996ef07238c5b8bbfdc03c93 Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Fri, 20 Nov 2020 17:40:41 -0500 Subject: [PATCH 05/10] fix tests & some edge cases uncovered by them --- src/plot_api/plot_api.js | 7 +- src/plots/cartesian/constraints.js | 86 ++++++++++------- src/plots/cartesian/layout_defaults.js | 2 +- test/jasmine/tests/axes_test.js | 95 ++++++++++--------- test/jasmine/tests/cartesian_interact_test.js | 44 ++++----- test/jasmine/tests/image_test.js | 8 +- 6 files changed, 132 insertions(+), 110 deletions(-) diff --git a/src/plot_api/plot_api.js b/src/plot_api/plot_api.js index 70cee33ebc0..31b75d27c9c 100644 --- a/src/plot_api/plot_api.js +++ b/src/plot_api/plot_api.js @@ -2055,7 +2055,7 @@ function _relayout(gd, aobj) { // we're editing the (auto)range of, so we can tell the others constrained // to scale with them that it's OK for them to shrink var rangesAltered = {}; - var axId; + var axId, ax; function recordAlteredAxis(pleafPlus) { var axId = Axes.name2id(pleafPlus.split('.')[0]); @@ -2145,7 +2145,7 @@ function _relayout(gd, aobj) { // previously we did this for log <-> not-log, but now only do it // for log <-> linear if(pleaf === 'type') { - var ax = parentIn; + ax = parentIn; var toLog = parentFull.type === 'linear' && vi === 'log'; var fromLog = parentFull.type === 'log' && vi === 'linear'; @@ -2284,7 +2284,8 @@ function _relayout(gd, aobj) { // figure out if we need to recalculate axis constraints for(axId in rangesAltered) { - var group = Axes.getFromId(gd, axId)._constraintGroup; + ax = Axes.getFromId(gd, axId); + var group = ax && ax._constraintGroup; if(group) { // Always recalc if we're changing constrained ranges. // Otherwise it's possible to violate the constraints by diff --git a/src/plots/cartesian/constraints.js b/src/plots/cartesian/constraints.js index 3cf4c8a12d0..713e0a0b730 100644 --- a/src/plots/cartesian/constraints.js +++ b/src/plots/cartesian/constraints.js @@ -55,26 +55,9 @@ exports.handleDefaults = function(layoutIn, layoutOut, opts) { } stash(matchGroups, '_matchGroup'); - // remove constraint groups that simply duplicate match groups - i = 0; - while(i < constraintGroups.length) { - group = constraintGroups[i]; - for(axId in group) { - axOut = layoutOut[id2name(axId)]; - if(axOut._matchGroup && Object.keys(axOut._matchGroup).length === Object.keys(group).length) { - constraintGroups.splice(i, 1); - i--; - } - break; - } - i++; - } - - // save constraintGroup on each constrained axis - stash(constraintGroups, '_constraintGroup'); - // If any axis in a constraint group is fixedrange, they all get fixed - // This covers matches axes, as they're now in the constraintgroup too. + // This covers matches axes, as they're now in the constraintgroup too + // and have not yet been removed (if the group is *only* matching) for(i = 0; i < constraintGroups.length; i++) { group = constraintGroups[i]; for(axId in group) { @@ -89,33 +72,53 @@ exports.handleDefaults = function(layoutIn, layoutOut, opts) { 'axis in its constraint group has fixedrange true' ); } - layoutOut[id2name(axId2)].fixedrange = true; + layoutOut[axName2].fixedrange = true; } break; } } } + // remove constraint groups that simply duplicate match groups + i = 0; + while(i < constraintGroups.length) { + group = constraintGroups[i]; + for(axId in group) { + axOut = layoutOut[id2name(axId)]; + if(axOut._matchGroup && Object.keys(axOut._matchGroup).length === Object.keys(group).length) { + constraintGroups.splice(i, 1); + i--; + } + break; + } + i++; + } + + // save constraintGroup on each constrained axis + stash(constraintGroups, '_constraintGroup'); + // make sure `matching` axes share values of necessary attributes // Precedence (base axis is the one that doesn't list a `matches`, ie others // all point to it): // (1) explicitly defined value in the base axis // (2) explicitly defined in another axis (arbitrary order) // (3) default in the base axis - var matchAttrs = { - constrain: 1, - range: 1, - autorange: 1, - rangemode: 1, - rangebreaks: 1, - categoryorder: 1, - categoryarray: 1 - }; + var matchAttrs = [ + 'constrain', + 'range', + 'autorange', + 'rangemode', + 'rangebreaks', + 'categoryorder', + 'categoryarray' + ]; + var hasRange = false; for(i = 0; i < matchGroups.length; i++) { group = matchGroups[i]; // find 'matching' range attrs - for(var attr in matchAttrs) { + for(var j = 0; j < matchAttrs.length; j++) { + var attr = matchAttrs[j]; var val = null; var baseAx; for(axId in group) { @@ -138,6 +141,17 @@ exports.handleDefaults = function(layoutIn, layoutOut, opts) { val = axOut[attr]; } } + + // special logic for coupling of range and autorange + // if nobody explicitly specifies autorange, but someone does + // explicitly specify range, autorange must be disabled. + if(attr === 'range' && val) { + hasRange = true; + } + if(attr === 'autorange' && val === null && hasRange) { + val = false; + } + if(val === null && attr in baseAx) { // fallback: default value in base axis val = baseAx[attr]; @@ -244,7 +258,7 @@ function handleOneAxDefaults(axIn, axOut, opts) { // Also include match constraints in the scale groups var matchedAx = layoutOut[id2name(matches)]; - var matchRatio = extent(axOut) / extent(matchedAx); + var matchRatio = extent(layoutOut, axOut) / extent(layoutOut, matchedAx); if(isX !== (matches.charAt(0) === 'x')) { // We don't yet know the actual scale ratio of x/y matches constraints, // due to possible automargins, so just leave a placeholder for this: @@ -277,8 +291,14 @@ function handleOneAxDefaults(axIn, axOut, opts) { } } -function extent(ax) { - return ax.domain[1] - ax.domain[0]; +function extent(layoutOut, ax) { + var domain = ax.domain; + if(!domain) { + // at this point overlaying axes haven't yet inherited their main domains + // TODO: constrain: domain with overlaying axes is likely a bug. + domain = layoutOut[id2name(ax.overlaying)].domain; + } + return domain[1] - domain[0]; } function getConstraintGroup(groups, thisID) { diff --git a/src/plots/cartesian/layout_defaults.js b/src/plots/cartesian/layout_defaults.js index 8f53fa4bb19..bc43f6fcde4 100644 --- a/src/plots/cartesian/layout_defaults.js +++ b/src/plots/cartesian/layout_defaults.js @@ -379,7 +379,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) { // (so we link only axes of the same type) and // `fixedrange` (so we can avoid linking from OR TO a fixed axis). constraints.handleDefaults(layoutIn, layoutOut, { - axIds: allAxisIds.concat(missingMatchedAxisIds), + axIds: allAxisIds.concat(missingMatchedAxisIds).sort(axisIds.idSort), axHasImage: axHasImage }); }; diff --git a/test/jasmine/tests/axes_test.js b/test/jasmine/tests/axes_test.js index 009bd26e37a..d38894dd782 100644 --- a/test/jasmine/tests/axes_test.js +++ b/test/jasmine/tests/axes_test.js @@ -21,6 +21,7 @@ var ONEWEEK = numerical.ONEWEEK; var createGraphDiv = require('../assets/create_graph_div'); var destroyGraphDiv = require('../assets/destroy_graph_div'); var failTest = require('../assets/fail_test'); +var negateIf = require('../assets/negate_if'); var selectButton = require('../assets/modebar_button'); var supplyDefaults = require('../assets/supply_defaults'); @@ -677,14 +678,10 @@ describe('Test axes', function() { ]); }); - var warnTxt = ' to avoid either an infinite loop and possibly ' + - 'inconsistent scaleratios, or because the target axis has ' + - 'fixed range or this axis declares a *matches* constraint.'; - it('breaks scaleanchor loops and drops conflicting ratios', function() { var warnings = []; spyOn(Lib, 'warn').and.callFake(function(msg) { - warnings.push(msg); + warnings.push(msg.substr(0, msg.indexOf(' to avoid'))); }); layoutIn = { @@ -700,7 +697,8 @@ describe('Test axes', function() { yaxis4: {scaleanchor: 'y', scaleratio: 17}, // y<->y is OK now }; layoutOut._subplots.cartesian.push('x2y2', 'x3y3', 'x4y4'); - layoutOut._subplots.yaxis.push('x2', 'x3', 'x4', 'y2', 'y3', 'y4'); + layoutOut._subplots.xaxis.push('x2', 'x3', 'x4'); + layoutOut._subplots.yaxis.push('y2', 'y3', 'y4'); supplyLayoutDefaults(layoutIn, layoutOut, fullData); @@ -710,15 +708,15 @@ describe('Test axes', function() { ]); expect(warnings).toEqual([ - 'ignored yaxis.scaleanchor: "x"' + warnTxt, - 'ignored yaxis3.scaleanchor: "x2"' + warnTxt + 'ignored yaxis.scaleanchor: "x"', + 'ignored yaxis3.scaleanchor: "x2"' ]); }); it('silently drops invalid scaleanchor values', function() { var warnings = []; spyOn(Lib, 'warn').and.callFake(function(msg) { - warnings.push(msg); + warnings.push(msg.substr(0, msg.indexOf(' to avoid'))); }); layoutIn = { @@ -732,7 +730,7 @@ describe('Test axes', function() { supplyLayoutDefaults(layoutIn, layoutOut, fullData); expect(layoutOut._axisConstraintGroups).toEqual([]); - expect(warnings).toEqual(['ignored xaxis.scaleanchor: "x"' + warnTxt]); + expect(warnings).toEqual(['ignored xaxis.scaleanchor: "x"']); ['xaxis', 'yaxis', 'xaxis2'].forEach(function(axName) { expect(layoutOut[axName].scaleanchor).toBeUndefined(axName); @@ -791,23 +789,23 @@ describe('Test axes', function() { expect(layoutOut.xaxis2.matches).toBe('x'); expect(layoutOut.xaxis2.scaleanchor).toBe(undefined); - expect(layoutOut.xaxis2.constrain).toBe(undefined); + // constrain is still coerced in case someone else scales to xaxis2 + expect(layoutOut.xaxis2.constrain).toBe('range'); expect(layoutOut._axisConstraintGroups).toEqual([]); expect(layoutOut._axisMatchGroups).toEqual([{x: 1, x2: 1}]); }); - it('remove axes from constraint groups if they are in a match group', function() { + it('combines all chained scaled/matched axes into a group but drops match-only groups from constraintGroups', function() { layoutIn = { - // this one is ok + // this one big group xaxis: {}, yaxis: {scaleanchor: 'x'}, - // this one too - xaxis2: {}, - yaxis2: {matches: 'x2'}, - // not these ones - xaxis3: {scaleanchor: 'x2'}, - yaxis3: {scaleanchor: 'y2'} + xaxis2: {matches: 'x'}, + yaxis2: {matches: 'y'}, + // this is another group but only shows up in matchGroups + xaxis3: {}, + yaxis3: {matches: 'x3'} }; layoutOut._subplots.cartesian.push('x2y2, x3y3'); layoutOut._subplots.xaxis.push('x2', 'x3'); @@ -815,74 +813,76 @@ describe('Test axes', function() { supplyLayoutDefaults(layoutIn, layoutOut, fullData); - expect(layoutOut._axisMatchGroups.length).toBe(1); - expect(layoutOut._axisMatchGroups).toContain({x2: 1, y2: 1}); + expect(layoutOut._axisMatchGroups).toEqual([{x: 1, x2: 1}, {y: 1, y2: 1}, {x3: 1, y3: 1}]); - expect(layoutOut._axisConstraintGroups.length).toBe(1); - expect(layoutOut._axisConstraintGroups).toContain({x: 1, y: 1}); + expect(layoutOut._axisConstraintGroups).toEqual([{x: 1, y: 1, x2: 1, y2: 1}]); }); - it('remove constraint group if they are one or zero items left in it', function() { + it('includes matches in constraintGroup when combined with scaleanchor', function() { layoutIn = { xaxis: {}, yaxis: {matches: 'x'}, - xaxis2: {scaleanchor: 'y'} + xaxis2: {scaleanchor: 'x'} }; layoutOut._subplots.cartesian.push('x2y'); layoutOut._subplots.xaxis.push('x2'); supplyLayoutDefaults(layoutIn, layoutOut, fullData); - expect(layoutOut._axisMatchGroups.length).toBe(1); - expect(layoutOut._axisMatchGroups).toContain({x: 1, y: 1}); - - expect(layoutOut._axisConstraintGroups.length).toBe(0); + expect(layoutOut._axisMatchGroups).toEqual([{x: 1, y: 1}]); + expect(layoutOut._axisConstraintGroups).toEqual([{x: 1, y: 'y1', x2: 1}]); }); - it('drops scaleanchor settings if either the axis or target has fixedrange', function() { + it('turns all scaled axes fixedrange if any is fixedrange', function() { // some of these will create warnings... not too important, so not going to test, // just want to keep the output clean // spyOn(Lib, 'warn'); layoutIn = { xaxis: {fixedrange: true, scaleanchor: 'y', scaleratio: 2}, - yaxis: {scaleanchor: 'x2', scaleratio: 3}, // only this one should survive + yaxis: {scaleanchor: 'x2', scaleratio: 3}, xaxis2: {}, yaxis2: {scaleanchor: 'x', scaleratio: 5} }; layoutOut._subplots.cartesian.push('x2y2'); - layoutOut._subplots.yaxis.push('x2', 'y2'); + layoutOut._subplots.xaxis.push('x2'); + layoutOut._subplots.yaxis.push('y2'); supplyLayoutDefaults(layoutIn, layoutOut, fullData); - expect(layoutOut._axisConstraintGroups).toEqual([{x2: 1, y: 3}]); + expect(layoutOut._axisConstraintGroups).toEqual([{x2: 1, y: 3, x: 6, y2: 30}]); + expect(layoutOut.xaxis.scaleanchor).toBe('y'); + expect(layoutOut.xaxis.scaleratio).toBe(2); expect(layoutOut.yaxis.scaleanchor).toBe('x2'); expect(layoutOut.yaxis.scaleratio).toBe(3); + expect(layoutOut.yaxis2.scaleanchor).toBe('x'); + expect(layoutOut.yaxis2.scaleratio).toBe(5); - ['xaxis', 'yaxis2', 'xaxis2'].forEach(function(axName) { - expect(layoutOut[axName].scaleanchor).toBeUndefined(); - expect(layoutOut[axName].scaleratio).toBeUndefined(); + ['xaxis', 'yaxis', 'yaxis2', 'xaxis2'].forEach(function(axName) { + expect(layoutOut[axName].fixedrange).toBe(true, axName); }); }); - it('drops *matches* settings if either the axis or target has fixedrange', function() { + it('turns all matching axes fixedrange if any is fixedrange', function() { layoutIn = { xaxis: {fixedrange: true, matches: 'y'}, - yaxis: {matches: 'x2'}, // only this one should survive + yaxis: {matches: 'x2'}, xaxis2: {}, yaxis2: {matches: 'x'} }; layoutOut._subplots.cartesian.push('x2y2'); - layoutOut._subplots.yaxis.push('x2', 'y2'); + layoutOut._subplots.xaxis.push('x2'); + layoutOut._subplots.yaxis.push('y2'); supplyLayoutDefaults(layoutIn, layoutOut, fullData); - expect(layoutOut._axisMatchGroups).toEqual([{x2: 1, y: 1}]); + expect(layoutOut._axisMatchGroups).toEqual([{x: 1, x2: 1, y: 1, y2: 1}]); expect(layoutOut.yaxis.matches).toBe('x2'); - ['xaxis', 'yaxis2', 'xaxis2'].forEach(function(axName) { - expect(layoutOut[axName].matches).toBeUndefined(); + ['xaxis', 'xaxis2', 'yaxis', 'yaxis2'].forEach(function(axName) { + negateIf(axName !== 'xaxis2', expect(layoutOut[axName].matches)).toBeUndefined(axName); + expect(layoutOut[axName].fixedrange).toBe(true, axName); }); }); @@ -990,7 +990,7 @@ describe('Test axes', function() { // matchee ax has range yaxis: {range: [0, 1]}, yaxis2: {matches: 'y'}, - // matcher ax has range (gets ignored) + // first explicit range gets copied to both xaxis3: {}, yaxis3: {range: [-1, 1], matches: 'x3'}, // both ax have range @@ -1013,13 +1013,14 @@ describe('Test axes', function() { names.forEach(function(n) { var ax = layoutOut[n]; expect(ax.autorange).toBe(autorange, n); - expect(ax.range).toEqual(rng); + expect(ax.range[0]).toBe(rng[0], n); + expect(ax.range[1]).toBe(rng[1], n); }); } _assertMatchingAxes(['xaxis', 'xaxis2'], true, [-1, 6]); _assertMatchingAxes(['yaxis', 'yaxis2'], false, [0, 1]); - _assertMatchingAxes(['xaxis3', 'yaxis3'], true, [-1, 6]); + _assertMatchingAxes(['xaxis3', 'yaxis3'], false, [-1, 1]); _assertMatchingAxes(['xaxis4', 'yaxis4'], false, [-1, 3]); }); @@ -1718,7 +1719,7 @@ describe('Test axes', function() { }) .then(function() { assertRanges('base (autoranged)', [ - [['xaxis', 'xaxis2', 'xaxis3'], [-0.245, 3.245], true], + [['xaxis', 'xaxis2', 'xaxis3'], [-0.285, 3.245], true], [['yaxis'], [-0.211, 3.211], true] ]); }) @@ -1732,7 +1733,7 @@ describe('Test axes', function() { .then(function() { return Plotly.relayout(gd, 'xaxis2.autorange', true); }) .then(function() { assertRanges('back to autorange', [ - [['xaxis', 'xaxis2', 'xaxis3'], [-0.245, 3.245], true], + [['xaxis', 'xaxis2', 'xaxis3'], [-0.285, 3.245], true], [['yaxis'], [-0.211, 3.211], true] ]); }) diff --git a/test/jasmine/tests/cartesian_interact_test.js b/test/jasmine/tests/cartesian_interact_test.js index 2fdd891f83b..39c2abb05ee 100644 --- a/test/jasmine/tests/cartesian_interact_test.js +++ b/test/jasmine/tests/cartesian_interact_test.js @@ -970,14 +970,14 @@ describe('axis zoom/pan and main plot zoom', function() { dragmode: 'zoom' }; - var xr0 = [-0.245, 3.245]; + var xr0 = [-0.285, 3.246]; var yr0 = [-0.211, 3.211]; var specs = [{ desc: 'zoombox on xy', drag: ['xy', 'nsew', 30, 30], exp: [ - [['xaxis', 'xaxis2', 'xaxis3'], [1.494, 2.350]], + [['xaxis', 'xaxis2', 'xaxis3'], [1.457, 2.328]], [['yaxis'], [1.179, 1.50]] ], dblclickSubplot: 'xy' @@ -985,7 +985,7 @@ describe('axis zoom/pan and main plot zoom', function() { desc: 'x-only zoombox on xy', drag: ['xy', 'nsew', 30, 0], exp: [ - [['xaxis', 'xaxis2', 'xaxis3'], [1.494, 2.350]], + [['xaxis', 'xaxis2', 'xaxis3'], [1.457, 2.328]], [['yaxis'], yr0, {noChange: true}] ], dblclickSubplot: 'x2y' @@ -1003,7 +1003,7 @@ describe('axis zoom/pan and main plot zoom', function() { exp: [ // N.B. slightly different range result // due difference in ax._length - [['xaxis', 'xaxis2', 'xaxis3'], [1.492, 2.062]], + [['xaxis', 'xaxis2', 'xaxis3'], [1.468, 2.049]], [['yaxis'], [1.179, 1.50]] ], dblclickSubplot: 'x3y' @@ -1013,7 +1013,7 @@ describe('axis zoom/pan and main plot zoom', function() { exp: [ // Similarly here slightly different range result // due difference in ax._length - [['xaxis', 'xaxis2', 'xaxis3'], [1.485, 1.974]], + [['xaxis', 'xaxis2', 'xaxis3'], [1.470, 1.974]], [['yaxis'], [1.179, 1.50]] ], dblclickSubplot: 'xy' @@ -1021,7 +1021,7 @@ describe('axis zoom/pan and main plot zoom', function() { desc: 'drag ew on x2y', drag: ['x2y', 'ew', 30, 0], exp: [ - [['xaxis', 'xaxis2', 'xaxis3'], [-0.816, 2.675], {dragged: true}], + [['xaxis', 'xaxis2', 'xaxis3'], [-0.866, 2.665], {dragged: true}], [['yaxis'], yr0, {noChange: true}] ], dblclickSubplot: 'x3y' @@ -1029,7 +1029,7 @@ describe('axis zoom/pan and main plot zoom', function() { desc: 'drag ew on x3y', drag: ['x3y', 'ew', 30, 0], exp: [ - [['xaxis', 'xaxis2', 'xaxis3'], [-0.734, 2.756], {dragged: true}], + [['xaxis', 'xaxis2', 'xaxis3'], [-0.783, 2.748], {dragged: true}], [['yaxis'], yr0, {noChange: true}] ], dblclickSubplot: 'xy' @@ -1037,7 +1037,7 @@ describe('axis zoom/pan and main plot zoom', function() { desc: 'drag e on xy', drag: ['xy', 'e', 30, 30], exp: [ - [['xaxis', 'xaxis2', 'xaxis3'], [xr0[0], 1.366], {dragged: true}], + [['xaxis', 'xaxis2', 'xaxis3'], [xr0[0], 1.317], {dragged: true}], [['yaxis'], yr0, {noChange: true}] ], dblclickSubplot: 'x3y' @@ -1045,7 +1045,7 @@ describe('axis zoom/pan and main plot zoom', function() { desc: 'drag nw on x3y', drag: ['xy', 'nw', 30, 30], exp: [ - [['xaxis', 'xaxis2', 'xaxis3'], [-1.379, 3.245], {dragged: true}], + [['xaxis', 'xaxis2', 'xaxis3'], [-1.442, xr0[1]], {dragged: true}], [['yaxis'], [-0.211, 3.565], {dragged: true}] ], dblclickSubplot: 'x3y' @@ -1054,7 +1054,7 @@ describe('axis zoom/pan and main plot zoom', function() { dragmode: 'pan', drag: ['xy', 'nsew', 30, 30], exp: [ - [['xaxis', 'xaxis2', 'xaxis3'], [-1.101, 2.390], {dragged: true}], + [['xaxis', 'xaxis2', 'xaxis3'], [-1.157, 2.374], {dragged: true}], [['yaxis'], [0.109, 3.532], {dragged: true}] ], dblclickSubplot: 'x3y' @@ -1063,7 +1063,7 @@ describe('axis zoom/pan and main plot zoom', function() { dragmode: 'pan', drag: ['x2y', 'nsew', 30, 30], exp: [ - [['xaxis', 'xaxis2', 'xaxis3'], [-0.816, 2.675], {dragged: true}], + [['xaxis', 'xaxis2', 'xaxis3'], [-0.866, 2.665], {dragged: true}], [['yaxis'], [0.109, 3.532], {dragged: true}] ], dblclickSubplot: 'x2y' @@ -1072,7 +1072,7 @@ describe('axis zoom/pan and main plot zoom', function() { dragmode: 'pan', drag: ['x3y', 'nsew', 30, 30], exp: [ - [['xaxis', 'xaxis2', 'xaxis3'], [-0.734, 2.756], {dragged: true}], + [['xaxis', 'xaxis2', 'xaxis3'], [-0.783, 2.748], {dragged: true}], [['yaxis'], [0.109, 3.532], {dragged: true}] ], dblclickSubplot: 'xy' @@ -1080,7 +1080,7 @@ describe('axis zoom/pan and main plot zoom', function() { desc: 'scrolling on x3y subplot', scroll: ['x3y', 20], exp: [ - [['xaxis', 'xaxis2', 'xaxis3'], [-0.613, 3.245], {dragged: true}], + [['xaxis', 'xaxis2', 'xaxis3'], [-0.655, 3.247], {dragged: true}], [['yaxis'], [-0.211, 3.571], {dragged: true}] ], dblclickSubplot: 'xy' @@ -1088,7 +1088,7 @@ describe('axis zoom/pan and main plot zoom', function() { desc: 'scrolling on x2y subplot', scroll: ['x2y', 20], exp: [ - [['xaxis', 'xaxis2', 'xaxis3'], [-0.613, 3.245], {dragged: true}], + [['xaxis', 'xaxis2', 'xaxis3'], [-0.655, 3.247], {dragged: true}], [['yaxis'], [-0.211, 3.571], {dragged: true}] ], dblclickSubplot: 'xy' @@ -1096,7 +1096,7 @@ describe('axis zoom/pan and main plot zoom', function() { desc: 'scrolling on xy subplot', scroll: ['xy', 20], exp: [ - [['xaxis', 'xaxis2', 'xaxis3'], [-0.613, 3.245], {dragged: true}], + [['xaxis', 'xaxis2', 'xaxis3'], [-0.655, 3.247], {dragged: true}], [['yaxis'], [-0.211, 3.571], {dragged: true}] ], dblclickSubplot: 'x2y' @@ -1150,14 +1150,14 @@ describe('axis zoom/pan and main plot zoom', function() { }; var xr0 = [-0.211, 3.211]; - var yr0 = [-0.077, 3.163]; + var yr0 = [-0.234, 3.244]; var specs = [{ desc: 'pan on xy', drag: ['xy', 'nsew', 30, 30], exp: [ [['xaxis'], [-0.534, 2.888], {dragged: true}], - [['yaxis', 'yaxis2', 'yaxis3'], [0.706, 3.947], {dragged: true}], + [['yaxis', 'yaxis2', 'yaxis3'], [0.607, 4.085], {dragged: true}], ], trans: [-30, -30, -30, -45, -30, -52.5] }, { @@ -1165,7 +1165,7 @@ describe('axis zoom/pan and main plot zoom', function() { drag: ['xy2', 'nsew', 30, 30], exp: [ [['xaxis'], [-0.534, 2.888], {dragged: true}], - [['yaxis', 'yaxis2', 'yaxis3'], [0.444, 3.685], {dragged: true}], + [['yaxis', 'yaxis2', 'yaxis3'], [0.327, 3.805], {dragged: true}], ], trans: [-30, -20, -30, -30, -30, -35] }, { @@ -1173,7 +1173,7 @@ describe('axis zoom/pan and main plot zoom', function() { drag: ['xy3', 'nsew', 30, 30], exp: [ [['xaxis'], [-0.534, 2.888], {dragged: true}], - [['yaxis', 'yaxis2', 'yaxis3'], [0.370, 3.611], {dragged: true}], + [['yaxis', 'yaxis2', 'yaxis3'], [0.247, 3.725], {dragged: true}], ], trans: [-30, -17.142, -30, -25.71, -30, -30] }, { @@ -1181,7 +1181,7 @@ describe('axis zoom/pan and main plot zoom', function() { drag: ['xy2', 'ns', 0, 30], exp: [ [['xaxis'], xr0, {noChange: true}], - [['yaxis', 'yaxis2', 'yaxis3'], [0.444, 3.685], {dragged: true}], + [['yaxis', 'yaxis2', 'yaxis3'], [0.327, 3.805], {dragged: true}], ], trans: [0, -20, 0, -30, 0, -35] }, { @@ -1189,7 +1189,7 @@ describe('axis zoom/pan and main plot zoom', function() { drag: ['xy3', 'n', 0, 30], exp: [ [['xaxis'], xr0, {noChange: true}], - [['yaxis', 'yaxis2', 'yaxis3'], [yr0[0], 3.683], {dragged: true}], + [['yaxis', 'yaxis2', 'yaxis3'], [yr0[0], 3.802], {dragged: true}], ], trans: [0, -19.893, 0, -29.839, 0, -34.812], scale: [1, 1.160, 1, 1.160, 1, 1.160] @@ -1198,7 +1198,7 @@ describe('axis zoom/pan and main plot zoom', function() { drag: ['xy', 's', 0, 30], exp: [ [['xaxis'], xr0, {noChange: true}], - [['yaxis', 'yaxis2', 'yaxis3'], [1.617, yr0[1]], {dragged: true}], + [['yaxis', 'yaxis2', 'yaxis3'], [1.586, yr0[1]], {dragged: true}], ], trans: [0, 0, 0, 0, 0, 0], scale: [1, 0.476, 1, 0.476, 1, 0.476] diff --git a/test/jasmine/tests/image_test.js b/test/jasmine/tests/image_test.js index 9363a730ffa..879f3eb47d7 100644 --- a/test/jasmine/tests/image_test.js +++ b/test/jasmine/tests/image_test.js @@ -208,11 +208,11 @@ describe('image smart layout defaults', function() { expect(gd._fullLayout.yaxis.scaleanchor).toBe('x'); }); - it('should NOT set scaleanchor if it\'s already defined', function() { - gd.data = [{type: 'image', z: [[[255, 0, 0]]]}]; + it('should NOT reset scaleanchor if it\'s already defined', function() { + gd.data = [{type: 'image', z: [[[255, 0, 0]]]}, {y: [5, 3, 2], xaxis: 'x3'}]; gd.layout = {yaxis: {scaleanchor: 'x3'}}; supplyAllDefaults(gd); - expect(gd._fullLayout.yaxis.scaleanchor).toBe(undefined); + expect(gd._fullLayout.yaxis.scaleanchor).toBe('x3'); }); it('should constrain axes to domain if images are present', function() { @@ -233,7 +233,7 @@ describe('image smart layout defaults', function() { it('should NOT constrain axes to domain if it\'s already defined', function() { gd.data = [{type: 'image', z: [[[255, 0, 0]]]}]; - gd.layout = {yaxis: {constrain: false}, xaxis: {constrain: false}}; + gd.layout = {yaxis: {constrain: 'range'}, xaxis: {constrain: 'range'}}; supplyAllDefaults(gd); expect(gd._fullLayout.xaxis.constrain).toBe('range'); expect(gd._fullLayout.yaxis.constrain).toBe('range'); From bb70db7abeca0f6e693e781b2144b107f1be5b88 Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Fri, 20 Nov 2020 18:39:15 -0500 Subject: [PATCH 06/10] fix a few baselines for updated matching autorange --- .../axes_chain_scaleanchor_matches2.png | Bin 46324 -> 46366 bytes .../baselines/axes_linked_date_autorange.png | Bin 26264 -> 27126 bytes .../axes_scaleanchor-with-matches.png | Bin 30228 -> 30502 bytes 3 files changed, 0 insertions(+), 0 deletions(-) diff --git a/test/image/baselines/axes_chain_scaleanchor_matches2.png b/test/image/baselines/axes_chain_scaleanchor_matches2.png index 1383d433defd405531c534bdb8d398ef65119ab6..33bed3a95a600d90216645b70e14098158492514 100644 GIT binary patch literal 46366 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 Nil)9sCE~`T{{v@sZkqrA literal 46324 zcmY)WbySq^_dN~+QbWT?cL>rY-9s6qgoGe1T@Kwagmj3~Fo<+ZqjU)(gLFv=42^

`tx^nK0u%phl)Qy14F_iXZbGhb>xUECyE5Lgd@c(@adCc(t|8D|ZkC|$-lf92)-=W&FDdF=i1ftlkZQGnC9f5uYU74aU zNpfZVQe8W*{wg-|Lg~_o{*ua_kTp8ZBno^w>d^>|z06?4o^Nna7Pb3YfQ3WQQk?=> z5`!Bv2cNA*>sJ`^OCNs~<$q!Y)26T?l|M~IEe9ORwXMbSGBoeBA9lR&yuOJ0rf?JZ z%SEJUt>rg|{OsodiO*+iaSxnlYdIeO+M2kz?7VsZD2;P`y2=!%X=6D3J?0%;onLGH zF1#AJ0S2&}^&|zAc7gUikr3&8n=&4!caD?;^-LlEJRIlh?@g8JDmTW&j}0R7Hn~Ho zLr#}NI*rhK-Ub?I2d4XMzhhA$=Nr^JGd0YbnIiojCAF8;Pd^Zt1^t;qvYjl4+~js# z?C_QwR%NZrUtVDj$(lAf!w)~7ey4qzqa@?KN5+xLu1>;@%$N3xm4>5NT3(kUI{c39 zE>V{kQ@u7B zfAVMM#l-t0`NyI!zr~LPEx0u6ezY6KhxwcxSvt3pKBg+=KlwGt948{}wWIQ9cZPc7=3=*IEjw4n=jp*>tLi!Rb9c-uaQ3ys z{J`I@bw&*8~n??cVt?|G@=dEUQS=CZ;bATZG$^6v-y%**df?))&tMc$;(55O%dR6 z73LwRTZk=pwi2OVX(U|V^VEs-i1C4aG7VQwJ<@ak`-dmaUvEx3Z(idNUA3Kjf3iN{ zu+--D!0)%saJGct#>l%QToQ(d^y1De7R@0y!LaP#TVvWm7bnQa={&F9geAt+$#{0K zge|nTq2h7Jo1@TUQd`S|A0C5@br*-9j!?!OPYxh@p2z7f{)Sq_pI&6SZ5 zwt%u2$B!F31i>%2DcA2yt5J+lFs{#s`K;t zW_H8NF{WP zfO9yt9klJP&Bq)H4J5ag8&nXq_DL30I!qKp0$C%BCftVy58u5AmU5Y^R~;gm3128hnyHFs+I%ZU`n6=%LP~0-c!WISSVr(Vi|`@Vf+X4BF{Olr zq(e{gYw_3I$SnAXSXv5I<0!mGC95VYjnjfJwz+zG5;ckEUw=uAg#JVXvP^{I5Ppv# zXYaF7yE4kCi!o~4ul)Ee)(OvDUE%WYKJV}yVat^I$3{lF%(VeKWhH&ZSaEsspFyZE zzQXgs)ON;DtekyQ@WOk&h+O)Du%}-V8A4X>^TSWQp`YMMQ1XIh3q%ZVC#mt>ym6@?W9_kbMgKhv?F+hk^RD1D3tZ*i_S2iU5uZ4Y2-t3e;M%^ zUX?n})raFJ3%xC+_Kg06p+Y*>_i51o`0s*ST*BQ=;c3jTnDNjC9w?^$>` zvu(MDG$C)|H2H@68M^(WS_zB?HZf-%vkm?+Ia8O+S4yD?L6ae&xw2aQl2?}X z5i8YgJ3J{kS5aB@AP25>)){xRmF)i>o%bGBrS5OUQwj4fB(=xWs;);w1|0tQZ1t?N zOzY3GV!PFJh(<6O7S){!8wRcflrHlCeoq88KgLBuzk7cyEq8AgJ3BlmgoV&3&ZN=t-b30OW~b0#4~b#^Y9*HTjDT4itY`Mh$+hILe8s;5 z;*NiY@fqp)CLP}HO)LF;)<0BUb0IxCFPJ97<;38NF)ua5lo~8xk+x;m;e;TO`dn8 z9}$XE1&btDD+-0)*V=xVAN1E)qpFmepwzCGonAiB_qi7cAEi6g);WfXhLS-_Puve$ zw+1@GqA>1|_Vf!d#qoF#+Lb>KL`?MmJ3j{7=*=vLB5~yF2uP&7m2T9LHL}lUu%|pl zL?}GgNDpH53zwv8sMtJI_(#Baaj07GZ-vnWXZ-NyEmd^vh19ne>FHt zXwf09<7-pC=jYWS6*JKvY2RLW(?S^AU7c}HtVtRho9ZS*oYc@6dRc$*mo3Z{OUIcS zR2ST>*28W{U83YIT`iUH&K)3Jbk2*4hyg#>nUGS~x^ZkJOD5~??wpB*&;kMH2Y+VQ z^rr_7gJonYam1|Rb6rZkUGQ-9bxZ{l8TL;C zEAA15PFi*FCIKiz549D7DRufwR}v%b1dU)%RaKh<7H|?cj$k= z_KW-#{&ol880c>zk+5kzF5R53x`M%jVw4oq*v_FsFKW##u2(n`5xb-=&`8bjjsz1^ zTSRq!_L-U&ql&pfJjg(e>HavJpucoj)%$(Q8%pGQQ7jHM*TWn|p(8S@{XDX`L~kFW)xM>oImptP zvnD(I&1oOF(gpC^m{P(cyl*aMRZuSOZQNKPv zUTDC<_F97@B5`&Cjl-w02r2o(!jMZ(FoSODP?qlt6_D%xy{Anhp%_x{oK&2bVX2-3Co1d_lCUa`pn1t_q0tvhh+IHQVS9vo_6k((& z-bG#XfeXI=1t zeFu|X^sC!fpVCaRMsXXW?7Iml;kP~cT1Dvu=Bqr=yw2POw5mN0v`)-I5qoIu?^>JfA74!jZ@_~hLS$Sbs6|9A#P}Bv{OR86UB44Cvg^w1kCX@c(}<~+`cnM@%DWv`4`-)|nhx@_~V!aO2DXmTLqNlUc)cc}CxXLVt%A}k^46OF=Gsjptn@yIHS*7c%<^UzBR zGKm4`I?h*jijM1x-G1)x8MS2?-z0wcT01MpLV2~8l0}1hC^0u5*g!X|*&&&IxpMO{ z&v00HRAU6K5w( zmu#n}jP|^iEF4>yymm+t2mdLEGJM!ZWJr>JEy_411XUU%S8y^V{#}mO-n&rFaJ$U- zNSyGbOZUYJYo&n$=5nt$VG{^FShHicc{auOqSWn1$H65%lg=U`QH*Q%t zLeUWY(c7myq?y30-QdP@2=@-JMH~)okA;NR#jk-`7KH(VIHrdOifv zEYf1d3xhH$YKbH``HGY2`CR8^dz+0olztENGkG~?tL0QGt~^9@4PkgGde^ZkUd=-o z{f_tth|jjG7Wak3Ox%@!AQJ~Rp}uz%oLz-#guel_a=p8dcO+fsA2O=~b3!y;WjR%o%WK+b z7x1G6{%#E!w>ru7LLfGLqNORAeVts<7*wSA)RnVReo3KfXq2JKy|7xv9m(z@b{tB* zA@YOIN;^59lrgfYojYnRNdjUykWP*iIYqN|N*BfVweqtrq=Kqqyhn9knINFN2V+QE zq4F6$u~eo0N#7j}N+#VJF4~$frCv@?L}L5>#WGm#%LgqGy0b+lH5Oy+@W=A57m>R- zIo~W9iaHBD^bAFou_^U9Pi)ktE=)P$A?_PbX>WO(|0tQRdsrzl$o9T41?&H@ITqNk z1VG@FMkmpa{U3p2!%9XAi+=fl-(igSXgTx3=aW*Cry{iPOHv89f9I6Rg6R3-g&#wo zuxJyvo-MItMwJv_gt0ujmv6)}t$T<}dhwAX#7(;KO?35im#5|zrcFQf5cmG-ui4`;voaV6)xyfI9M2=yd9s-*=IOy?SCQsyE3*l{) zsjfAHo+WAcI$F>Y4H~g_;QTx4eJA_xXRnWJ;PS}-zBGbhO7wW@`awe|o$#^cfKbz% zwr|hFL`&z7FRW>Po__-M7WqRwrDU=bJSH)6d;*^(RK1Z)xt=Pz#YcUGo#s0$yvFgj z$p+K(IRm(Uyk3vZRF$-D?k3@HE2}B$Q6n`sqOFEy-C^c|euVAO2@z2m5ecmbf=E!5|K!=dbC<&T+YtN$Hr66!Fj^>hD{00b0?46ucslyW;jD~|0NA%$$|NO zjsl+uJ_WXeR*qy!EG4g<3`a0jI)2N--RA^7-r~)&$J?_sOaYaKwmByr9sb7@s!(C} z1>%u=Z+}-k(S5aNGi~|P@87RMYi*Ri;`!xar)ti{-rUD0A3Kk~$*|o|5?*z~&trR{ zwe$U5F*c?{<(baHJVlL0$p+(6FNdcTO0*ATTcRpBsOYq>@& zo~nU+W!Uox~s+It%lIj+ubc6F#q|!E%($F z7C3kpT(aLkL@VWu?M_#{2OQI2iXR#N)%E3JNlBjnV~vkaHJ{%Or}J`EV+nNr^PHQ6 zb_QsoUAI0ywGR4v7Xo`pxG*8gF%i4)HJ%qOi72?=vF3!#g; zNesTa_%J$r)ldC`qx2-@2cT8~jbk`3*B_~i8~JwK%?RoqON3>~aWWKosH@)7meH~; z4{f8Le0r1cg69-agc@X$sdnQ`*fTYj;PfYxBe*j|_$nk}fLVOx%W`?tOBxxbn=9?r z_liB!Qui)I&NJePN-+5a<+JBX^b)Rj$F>?Iwv<>-Y7;Fv@N@Z{d!?`H=SK|>R+$tU zf&s+=OE;}Cm;0p;A$hVhUB$Z?JAY3Qa)m-FBT9^3gj|V<*`q>lX)x{3ge=`0+WR83 zClRQ|fa5GNr`Uu7yMjT)LGZj$kuZzKI=$!EF09MH;_R#ApuSaKi;fi$HW$da$ybxp_>uegc^`rsumv@Ku{>l|#} zh*|rZg~g7bfUE}&sgsxKv{YPLIb?^PjT7O}Pe&wFW5qcgkz&*21H|QZqwX*)uN}b9 z3To{cLbx1dAx;y;3D8pLZxR|IMa1a?&c4QK9VG0jt@1Gj7rWiq^w;anKY?21zhaq3 z=J)O)*MBf*kFyBc<*kG(qAlMj5qWXoFI7cWtvx3-5YM#0trImjZ52h91i$$s64Tr( z`1yoFGebzpIdSDVHvPSi4+8!=E4>}fme4LA2aL=6<{$pN$aow=D*QhIA`tIhJGUZT zyD%&qirBu=*L1H z#X_uP-Y`<=^hMLb+(-2myr8|h!G~hMk<)T&iWAvkEG+kJq zSm5me#|7m67}1Jlk5X9RO`gx_cDwBA>uZ-j2Q>QWWra9R~Pb6U(Sl@+@TSWPdY72BeJ}Y~w+DO}UE)s^iYVv%ylr4%3 z5HWb~5q(gC*?aM47w5aX`u!&@PQ5{v)z4dPjQbC{wDa!XRAjv7+b4()mrNo8GxX7~|%%-8#4rRNVk^G5FBm_U=~88b)BjmlgITSqdlO z%|E*}ovsUQHV{VbNehcent7e}-gV>R3s3a|a{Gt1BuY=L-g@uNDgiQ?9P?2F!rpGS zVZ}nfT%TKS|8YGReD1Rpv`qrW@EY2dkGLM@t-*KtDs#}H94m_E#dWeYr8ckWi7S54m(+Vbez<&DDT)+l^i+~lKPi!yQuzj#YY*}l#JQfJ zXMHW#qb0V4LJ48+R8!}Bcdgt1DO{hi6En$Xls~J{@=bD6MFY;epvttFvybLoqZBQS zS<=10SKdC*&2@@dJoc4>D99(lCSXyv=RYrhQEt@Aeunkwk!FshuH(<2Q7GPL)fzg# zcJ;Qt{IR`1ODeG(EqwomLmvTw*rm zjmw>H3Y%HZW@otnK;mKMWAuDRFi2wvqb)`{y(c(Rj7rs(W)snZJ>Tz7%vkII4S;u8-`IR6408bIeOA(j5M`Cn?>CC1xZTvDf9rZwxMfcvx342}}RSPS8 z{j(I`;vehGG9Pr8q8i%$cZ45-NVFl&j1elZd*p{;=RYf{quGbO#Ti=*PsvpTdGHTnm` zl(_fb#}Z|U%@8B$4@duO;I1O_zFDS_x7E3fyybrnWSDTkW-(dbq)E7$uc8MtER+#1 z!|pwPqqAcUn8@wzl6)$k3l=Y~JZj5DJmT;szh`A+>xl`mb9VCw0nTfdgEofmez@y= zAXXZJLSR1c3m4mc1QTdQ)%?}VAESXNM!BI>;I4fFvJhb}Py5ek-RESS=@a5cv_C6N zn-kv(zBq{as@tpwi&myEdg!!lHQrN(Wv>i8pLijpoZj zWj^f_bjA>i*B-}yDgp9+4#=>vGUohYcP(seCA$Byz%v`m)4t@De=>A&U1+Lm;hm}Y zp;)hTHFu8-k;uYkqA$=w@_DDcV)k8oT$nZvvNx8o13$U4feWNf_;A4-gzRIXv#pd^;LXQ#k!atGM<9cg zMe^tQo*XW}_%zoi#~VXK7-pO$<5R7(v0^^Wv)VyL)jWW$ERb_jNiiH*KB%#@uA=%u zP$4(&^+G21$67CwY93_B@u&nWF8rl@Z!{^j^-#BQPGN5Pav70hV`(1BLoTW=Tmg$l zmW?LP7^t|ifZnL-xNvOyH9!w>`zF>-#voqnFksfKfoqVkc5*nndY8b2x5Q^0q*@!Y z7pmc?TsZTo3d<|m4=w1zxV{n=_~@6oI=($uVeW)6*^_hkW*cwE9029^FTG@i!-S(~ zk?jeylxi>^kzgJ_1IX3#&2_U-Dv$y`)c#Yof<053ZI>-aknsKmnE;aHp8Tld%{Jm- zX{hgA5e%)Suy3@Gfx4n2KlT)jMR~jkU*e(q=l^Gio3*OYb8w;oO?NBD2pO z2E*=EBABLy<8OD^?Ap&rRR)>B%wYSVmjCktln7s0l#}@bVb^|VvaCl0$`!QuZ1r{e z=8JhpPa)(>R`z4|ef<_2M0H4Se88*E*)uFTsNBC2_~!;TsLEUs*t1rNnRoOEs6W|2 zuLHe}h`l7Ht}*=HuF&zAFi$`O4IIl!rD+ zFKH1_x$_Aqc~p+1i&HaDA9a3TWOXH?_J0T+L(FWav$k|olu8iQ{vfL#1TQuS+TLEm zFnB%_mBvh6a?gecDTAXn;--#1LSQR1<`B5UqK|R@ZX7T;%vr59sK~&Y19}0A(B$VC|(jz*}V&BtB}4t^=;GtREUUlQo>%YZEH2Ws^j%}tSm9qwdVfz`o? z1Ukw_PXw(Nx)%L&g^wqOb2G(wR+@h*7Bw0eLO((hJ}eg>_u7=Ufep@ex~YNIy4TlA zlttdg*C7S<|GmD}fB=|gLQCcgNMZAz&jI@7i!Zkr|AIKcHoo}{4op9ECXGkISL1IBf9s{to{|G8*DJfd1EAe{LOI3%(R>Fi*qc&ax~ z60ni&jkN}0GY`=N0k8NUut3`gvNru}sG78%h~J(SOdfa7>+_}If)v!!Vm97BB2PA} zOi+n4!XK2OqvMayV9lQ4{fN8^53s&2{kH5mK$d6?9y&uDxMGbEdFH$==YppPyyAqH z;B#&I@c!?6x)-ax(Jsr`$B?C~jP5O|Pc~MczxPxQ+vu>vC9S|BOe=j(b-Qw|Xj-pQ zA!gw@d8pBY+xZgdhRf*w`}eJS)GjWmlAjKFThIx=z_`em^IpbN+BkU2VB2zb-afr) z*6t0d35cWOe_F1^4)=ZX=G@^Kw-7$hDa#1UqB$v(tdWXR#E7*4%x%07=g;0;T6Oz@ zv@p@d>89a2g&mCaJ&_dyz!O@0&K_F{Lngi<=13UMHXV{&dJW&{aMW_nb(2;ApX-E0 zkkin@)VS4@U%p-`BE+%fbgJ-!<)=TwA2U(5_|i9w8!s`i13R$La2jHg=W>lex`D1jH;V`Lt6# z9A#kHU0CNZ!Rc{$3T zj3jFS>K>Lq1IeXGI=L`u)MohMBJf{`Cs56`zIusVeRI!V?AO?%=da$pPQd6GkJfxU z71>Cw)RZ$IHYnli86Pt62BdT2#;{8{3dF%=57n=bfD<%1JNzT6%=g7LNa_Q`GB`3yo0D3u8kY< zs`Gj?;ze+15u6kp#pJYw3z;ra%z;NrbmGn#4GYP5@p1!Gk9z)v5=j}~xhf^Blj?bU zyUvJd;t`2vbXs;7`t>%CL{f2s2O%g|>X_Fbq{-{ftf?KFpriQ;A+wvQyMKodu14`0 zVKv&4ubaVwKoSGMu4@w5Kw5`kDVvkWb0oJ(F79P_d`CMVCr9#mL}oFm7;WDd(+xx- zvFHQ43pl7ozqfhqrtVj0hsVQT}IkP7MTtC@-0`UUzF~j;8P$1JABKL5*~5*=$3(6;+GJ4alnH}%wk3O zrhWtrR@+KAA)*Q~SGH804wCtRPFnXZ7n6(99m$gmK%@uc$@*bCbYbw$^&zUG3NnF` z7qbid$g6BD3;$?xy8(Jeo`XuSB(#*Q&5)BS=hjU%5Kqfq6$LRPNU0zyM^sY^#6^P~ zI{;62(1VLKA^0RXNcdtR1v~oNL=Wu`QBfts&f z(AvOGv21TfVnBp-=;}fo+;E)C$HV|wEG#;`Vu+iG(o-_&DY^22bm01F5BC{;AW8_5cvO^zhOxOoQ|N*-_CfD(ej0ak(aNl6>LS3 zmk|}rA4HIsVdbZ`BFKQGGUj_CNOg^kgFz06X{IIDN$qN`MgSm~zO0Z>x``&BBBV*` zy#d%V;CJpkTO$OXtQ`Db_%&AeWyUS;mZtGN;6{jj$wJ6`@X?f4OGNirAV^ouju#&@op3ix=!+MYe7I-J<6Q*yMiUpPPFz`~@ z(n&@`ma;v5x4(&JJpo1EbB#0LX@F?3Vz?7ZzuNq21ZNek1w(e4#c-7udVhIWJUSP( zlxod0FkDX3?2^ca43Nt=82B?Pv3xho#a&TprSQk+077CL;B;D(SNEL<_zGr_fDga~>TZ?-&zYydXVu@Q_UQ*OD`rqdVBC=$tr!?kHJ=j7^!6iPUeJ6z zXth?H%d=csPM%;ZjI1c2kCzREo!T)-d+*&}(`1n(`3@W*_)bGdtG(+y844lt{Lfo- zDqk9%k{x~mwx;iDLdYkq1S(PStnfvCmmi;`5?k86_aDmz{4D}Ge9Tjb1p|;BMGLO& zn$i|51=fR!x_}=l@=L)?`Ap`s;QTQe#Q6^*g*lH55@^I=Nxw7bE~!*u+Jk4e?oKd^ zYJgq3JLR_AVfLIWky$~$TB`P5k3X)+;AY5BGAm-V3t0QOr`aneZ}ZBx8F3<>AQdzG zx9>Y^o}H8I_qJv5n~JCJv61e;@NK6e-Wdv!IM022DN#kJi_v=v|AY-0A{lYFwyf?BZz~UNg1>1DY39} zI$&(Q5l)>dU;~jvBaUI9{jo9iOqtQv}n147@^op^W^OV>gebN5D!LUMV0E z6LE;CdL(Hj4VI8>r3A=}22%o*YJ0r{RJ6Q8~raK>vRXB!QKs z46?*pShsszASpevDwl5jY)|dQHP~C*w>8nJyA~9mRxP1CD&gWc5~oK&)L^ymHIyCj z)wW>qZxc0sBjr=t$!KrU>ihVdBl+*tvlp5`S7u)wZMAa`0M=$bz^jxgMc{sa$LV}` zYf19l_$j!wb|@&+RAxGyn;lh}JhhiIq^dG+gZ1{8F+?8IV(#=XfauOw7k}6W8)wXU z`>9GqY3xeNosfm9Pe%n^6#GPG%gFcJ=l~VDD|Acb85vre_d3#PtJp?q>T&>1I^V1v z#KvCfD3FGlshTVq8%i4&z9luJgSnJ5`iSxNdxc?DA@CLJrLd{mPnPQHH#!<1FB+d{ zpu1_*|8C@o(%eb0;RS2eQq1C^=N{W}>&)qOAP9bwAh8nZkmElJ;B=f~1H^e!x^aRC z?N6w`(7>Z<0!}zBjP=rtGec=FamIy21{v)U;pi+ndEl-Z+lHgt>QM9BNSV=-2WwDc!Yj#;fr>+PkGEZc8EwovgM(JRAOdvJ z#Pn)LG>fw7B7bj-vzc|k%!?KN{=E`O?z8Dj7l~as@R2(Q1x!Fz#uzrNFFFDrU-xZP z4gJP=-S&%Pqymv3F>i0T@~p*u6$DBm-rEuCKFftHSuy0aF)lT^&;zG-#Kq~Mpw^-{ z!nKmZJj-q@kDrQID_)U?yesN22!nNKbD`9TVn;wWHZ85noVdq(7nA!-s@AcQj3fL3&UyY>hk&aGvZT{LLzD>}Au}rR5iCsD)#(SE=uKx7a zwb%ovqwhf+T%zt9{FjgK(M;rV1MC}(8R2-swvI2&3da`cdd(D9uo)q>FUm$tyy6u8 zAoRc^J&Q>GS05CyLg%$JNnWjPo6?kll4HVu9jYVf669z5=Rj~NzVN#Z z2t*>t_B_sN`G$Jpa8~Z0WCI90+(->{^@`TH`t305yxR5Fk3{AB?{L>0vE$awaK{7a zfQw&_RYkCvVD7*Dp}~Hf?c!`bN%e#~9s9kSY!#1b6Q4ni`4Ty@cVk;>D~COvtu8ZE zm*XH=_igsw>4~uH4scPW(JKj8mk5AGt@DNjGf^%m?{#l|HFS(z;2@(9$0Gllo8+8_ zXEa7n82~5g;5j%5LaDIFidRe-c2tbRJ=lKpzvy_Lqmz?^O0Xpbdg&4FWh`%XvO)H* zPW2R2glwsIlM=Ah*E>s#4-wOg!%ryivYlrkQV9l_B`Ps*?#JCJaI0kYS_;10S7LfR z(F6e1RjnuK(!;2hZU7R}tCik|L(d~f-t9LO|1JV6~e=A(Tij7GgLztMd?U^DY2rx*@UDQk)Hn0^FoCKOS( z?tO?(RJ6WwmN+a!i#FEafr&hZBu!mw4~b4{L8ShzYS}=He=(deLLYKaAF4v`)i#s?E9DcL6wbvV*tBKfkbB@pp}3 z92AHO+tMMUz2d<%I$P3DZ@-&z6|7wBO;9{DJ=Dhq=Xk1Q4=8e&%tWCoq5svN83TFU zZy$XQ&FhTc;AHCx2wBkD0>I5wi}}%BivwQ{s{dv+L+ikVR+aLD3`fspx*jcjcSR+N zY;wJM(KBuf(P8t20;}xwV99hEp>qvHP0kZ{BBvt!+a?YyuQT@PRBz9rH=UrB<=tAJ z(?*(9%*0bujR(zX`0N$5^$uKk4KjMyiNY%3^YVO;*x?4WhzO|fM8u#<5p&2tT}e#X z(3Fi$lkcxJVVHI?!xdflRt5@`Kt;36W zMuq}_sxb~C?c>gWzvIpfIWJp0mCnp1GjzYyG~(qk{$j)F;5xY?cu!QQox%p!{C+}+ zY(mjc50&1?0sbr@zhj?n&WTgj^oA0rj`06V~86=lp zV$>BV82J9tm;NO@Z}2z9eKh;PULe`Pma2~c7R?`j%`>R=R|$R819^JtS%sf=YfNe6 z63s$6+)28bzIpoyn6T=}`k?uLZPc8yJN7S@MfMLb&guF*CYryL5%shX8SZc81ytX+ z>y09YqfxBC9<$PB^6M6=#G}%<@n+ZIF&GLu5>ET@`lwo>r_XEO2@QK@*a(Rrm`?f= z7Y2br=NEnpaWF^kI8aidTv}vArz<0&LBB_Iww5Ep6*=?|lrYm4y1{Wf_$`oN4&EhR z*o!9TO#G7w7S;=dOfXj-p6&j|GA*VcxdrT$LQ^2_|Ju49La{)z5>{S??f)5rKBg{VIX@R=@qfFC9@}g35CIXZ?SjVfa#5?!S-coodEGtIcEgPvQEt z7E0yjpQRg}=Ta;4JgZ)G=8=`67u-52wJcX2pmSb*LsnF`#RA86RErUwNKD81CcX5{ zzhm3EwP1DkJit(B^?3*tGs<|QT0GY6K|N6C^Xo$PR>|w0Bmeg|S_;HDzmt~z|J)?L zF&IOiZiA6J#=o_Qq18wGpnmGH{02PF+hrwrY@beNO2FtRf{l1D5F-aPINWkj7ohya z=>~koyJ0}S1`?GP1HnI|8i)_8xmse~5S`l+>y`3oX2RcnuKYl@d7xNp-0sy1@Y z_^$2y;!`_VnMn}2hy1PPtWqQc8r7ik zcj_YUQ}Y>-ozj2m+Fm+#RA6&tmBm||TUqIjfaXCCetb46jNi6zf$p9{;MD00R?m!Sh=~cZ)Y3p(GRe8h{MWa~#8&J3%StKMuw)xl z0{H3PfWTjKbeSk72F6L{GZhKWoSb&}HjG6-DBPdP(ZBsaa>;APjQSl;-z6|0ECl<2 zbl8{s-25$ z?R}?kbplObk~4XJk7b4EVD=Ua0#xE*=-%Ziio|nPY?1nJo{ONErHjw1pK~AdDFr@^ zB&03|u;MA$QK~Cdf`w!4hr0UjrCBFKzS{whzt^bG2Sa@N;kL3S)A+b`F!SN~dPY=lco0u|H z4DB8Z)?lzK;$lH7oM2D3H_ZUR;17*Pc9(;=Cfb1ef^gSQvTpqQe4|tU0(>&!wgIc@ z!H*}!2L&O(6m~+s_E-2nr+=&-+gOHPU`?UPy&1#BWdPc=ObVy zwY_$y6Vmabg#mm-t`8n@5-cdDxh7j*mGmJKQpc%D&9K0tqY;5itTLx_Xnic?wWBY6xd*uR_d>^Hl8R4`+>1VF zTm_Up{lNF0?Ss=NVJhHENpO5;35o7 znahHz&^FMI+1L<|PuYFTd34(`wlS8ku=z-<7o%Q2=mM^7bACLgKwa)t1R^F12&*b6 zN@t#iMmEr8S$Fx*=7Lh3Ha>oMsiyxY$ia8Z*;+_W{Cjoktokz!t!oyT`}%E0v&8g) zkg#ffK3iu!`CgrLRi+g*h*+uDK&-)W_%{|h>-sdpS|wV!6v`WR)}b*b6{VTE&XLAd98)KVuRa&ox8$Si*)jaG?`Q!58uzI(JEFO1nLt=Yxs;w}2jy+J3Y#@E8lJs;nN4i1MI|v5;$JKm}2%lw|=%kCYr{ z!2CyJ!&Jf(p($%Kw4H?~(Tt+n{F*6R?QrV|gMT3+q(@fZYqTBPmoP0xuI78_rEMef z4t_ndy#h71{@T0pHjxCBUS!40A5g@KO=U6fkaNP_N*49BqQ(dV&3Yz?PB83Ok(ExB{J*vl4S&jt8ke6ywrlJ7qe zA0bASYs3}7!e8L&?WUd@TeEGTeA7l-rgpO`N9nv*OX$l!U?G$KyUJ^rQ|P%-ue^;-7CE5q#eQWU!cb@oAV^wY8qnx(u@N znASm7urdGe?Lo@a{Q9+GXW(%t^*bhhSPQ1JC-m;TaQhnqV3?U!A*AYSwi=;gqYQWi zOreYa4Gw92P4tLU>{vmx<}asODK00s>b zkPd2&7zL*pdAoIdiRzXC9^FF3Z=v_Hvr(m=4Ch*pi9jmZgV_3P|EAW=`}eLv>yvXR zaoncA;YGIstp#n;F8_Mi{;fX`FRAwP14~#E4YES(C(G6dxZLkq-=(Je6m2s!=ej@E z`r{xuBLAj?_&(3a77i(L8UG;yF0-BK7od=Q!&dErv)ev|`Xb->41|9)1yW!ph@&!Hds zjI-idO|fNf6hxCYb+7!JTRO0^LRZUf+;9(qe?KZ@lKV;HSLOL`hUP1S2AW(3i8t3X zP2k80r_d69FeqZ#P-_cQkZX_NivZ&YO&L3}VZw&JXiY^&(XTy=No0I&_f4N&tH6+` z|Np!IH4wRY5&R-B2Wsg0+@>twB5`V{zbvx--r!`SNg!~HF!V$HlWocBpccvH&xCu= zC{l*M+isA!RjJ0=jh0~EiK*_q#!lxC;4~NWv~EoV_Zy7X5tVP(UEa$ zZVCSiSco4*uV;DFfsU_I)5)Ze&tt%L@q6UwW(|FMdptv$ldgZq-&j=D!DuGXb)Ip; zA&HjkC-;qJ?WAw_0@Z<%QV;0$FY#wG%Jox4#~dC{oBryN^%2m`7XQNk#uZ%51%g2Ggc(sFN=^ZeAws@$J%4Zm$(c>lPy^lAAoSL5Fep~mJRU{C3fmPkS z-T&X!+^{E2fOq;-PnEU_+BRQX!Ziad*4v<%A!pV17z1yX_|M)6ULnD|{|lv^$B`uz zW*w^>EM-@{` zxr6fwdUv|}qmkhPXoxRWja%-g_bbtDuJq66MhLWXK75O^y>+g5p6h+-MljVu{WB^T zqlsu?K=B7zVE98W3Mm(Sb2X8MsqIJ>H}?pMawN6_nm z#Czm0(IrHl0Bv6}nOf{DLiX>hb+MigXnOCVC4)sd-fFnm?f9L~J6#tu1UE~}ZhkC2 zZdx2lnaNx0xgXJ$29dKu2rM|ru-;cVhGBqrRy+h?>#lGbt0H*Sz}=hL`|J)W1vw4Y zz{Yv|9uNwxgmQ<2MNxFq0tJ83%WwbUq~SUte-U~-)fD6DgkgaK3<1Vjdul#<-%xYqN$$NP1E*tn)SA;RuK18;-v*&XwMT^E)+bW)|lcTjuW*)cAhj)KKlmQJ1@-g>2 zwordm4@><)mfQoibIpS_!(&`pczyXi%}`xM}XCw!n_x+&o$-74F+JEniP{zu&)`6{*-ezk@28N?sgD z-`*mkUBMBdB@drC6N`5O*iv?BE9+ML5YA@;E;=eZ$OQ3lYM=COy`);7R^81kMM?Bk zbbf>$mCxZiXW>vv38gPRzY|o}G?FDAWy%_jTze7D1voZbXk2{Cy?Q0J;k^NFTS@X)F z@=_buvxcVME-K!OhDXNJX7#m7<_qfhSGn@;Bz3gu+O+cdik&nnUrZ;acL(%X<$fLk zesJmLbMqDa3}~wi|LNc?kzMJC@MPCK0)z^gkmDAeP`9~+7##!1{@#m?G}|pg)-fo zTrtklxU>bC(%|MoFLjq}YTDcfmrtSvkf3plQl>sWcB?(yl+~+TX5by>6pS|HL3Yv* zd^=mkdlTfEp1^(uGM;8YGvyGQ3;IK92hCiWfe0L^c(5g;M6eIK7 zJ~S8ds=`p*e56!f#M63u?9ge>S7Iqi))Iw?Qgx z(83bFvm(@(qG;1|LE|#7#mB~_iHFg7db19!dokzhE-vX&N^`hD>lV4uZXBv#(oAv& zLJc)7o>#3clOK$?0h{#vly(|uUU=;|w~&n4NtAFz=IiIHUUU3%X*}WCvKK5xYat6~sxrJX<}n<Ag`6(@_OzC*~-z1QnTU@0d7>{bMH1Vo4?=dK3{FvMdrg2by{FmxaG&Nx>Y!ON|f|MXZeo^(uY&vuH=zI%ZcMTSr{v>2t`9!|*-|099qZ zK{C8sMlEekB5LsV`q#=E?Jt^nwuEPk#|{4Sq2#bf%u!YNquG%Phd1&`Ls`)CpWjX` z%zl6S=Z(P?3F^YhLRa;y*t);)e@{f^z`TKqgBlJs^+q{P7)Il%HTiYTmNR&X&zYQOo~W-?{%Fpgkc>uAlpbTzgP zhjrGT%-=6y2cejP-{IQY`b?;&dib*&8E@ImaaX$#J+6scR|IQc-17jq(pMhknE;0MLp zr`I(SKzk-G+)#K;I830mJR>HA~5pcrs{fr{_@ggrOr19$I zvfaBKhZ!lX)2o+I3mQ=w^ZU(~{&)5IUqcA#FC+IpH=cZm&lOI`1PcZmbX`SH^mQwR zJ#(pbI5p+g>AL(?pss6a3%=?Gd;@s4yzhP(vhIDm2<9Bnj!QkyBK@5N4YhlD-|a8k zdhfbe#2gI_v?zWs1di+9p&*>^rYB|z(9jgM=V^sTkTu9^bv$J&VbDxWNjMr|OR&s*GmC!YTZMvX+vw$_pzorM&ecc_VA-s3O0Q8rc0e z5Ot_td+_<~@zH@Uv_hMfKfzyE1>iTZ>lf-XnH?d~0a+?GO+h|#yvR-zejU;Gr_ zxz|qj+@;Y>9;&eJ5%vAeD3_qiH@0b{N<(S039Br(4_Zo z59QoWepXa3s#AIGe%s9F#zy5CO=Us{-_7splw+UN!TL#Zp+7ab%x+-lMczAwlS5tm zNZhggN-mCoDFtK-T*||!9v1dD02!_1)+6m~5fThfdD7UHCnPq)&`QrClS*d)9gb;m zNNvnYpp?$QIuPytyrFsjRh3I>yg^~lOUydgt*GHIhUrk$?BGhy3!K*G{iu?hS}~C~ z@T{BlyR|BIl=S^O0TXv9O*|JV`}tW)h0pLfTU!Rl)4F^>C?ON!4tbcGt8NygjR4lUm zNu89jy+G^InMY|pwqIGYhE=p1!lu8AQPpw>$J-AOJLO4vlJab|l`emcwBNM;(>+i` z0P&dPipSNkdIlDsE2;>II_|yATN%9iRJ|>_n7Y+hBb2tWb@g7&eelRd1nJCgR0JF> zU8MZYd~!74o4jQY8;oLA$vM}u_O{5LfDyqA-|aI0pN{W6>@t>yQ_1ux^j2Y2RB~)V zwU_U-ypvJ=hkT7he#4#<`cHhZmT^}Iahu`il50`A$>PRnC;dCH%t=M<#ql+;v{$JE zUvx%tCW*{b1Ak4sz4SWrrVYcK?UOvb#rntO_tJ?>BE}pUZT$=eC z4GYe%(9Jz6=r9~~W!LI|pC5dyn7{Obk9V-?>7wrO;ij*R6dY_iF^Y2ilJ94H7WEi~ z-;!N(xT7qNS2}~+-D8@&sA@M!Jznb2l256;oTKL68s_!l40X}O-erIU;4QB4uN?ms zJn$Y|m1fA43?M7>#y%*NN)0D6BNIuq%qzX{zaUOYv>(y4(t>{iUYq&YB@`<@pVt_D z-Z85RB07i^vcoWa;3m2Fv_=Wd9> z77eURc5L~>L-(WQ0vh9*;J5Bx!>h>0^Emo)SkB#eyLa^{5fdz;S!N*oH(AFgG2#5K zfmL32i?-AB&ZAQ$F@bMYE=??&u*ACyG)_mvzllz-r}q+oC30yvbWplOGk+MQxZeL> zCIA!=Z+F2pu!Y`UVC`sclMGA@3}gKYYk(QYAP8*FSSR(!6^PR3QSZ}P_$xw#I+If^ zO8d{|0#UdkXh8x}r~aE0hka@J8p)>m61OQQ2I97X&``{VOPy|xCi3KHcNnJ@&UiE{ zumJs*Ra+LFV{RwFwo6ah^+B;@9pgP+0d=rNwsUWrG@#gY%H8lbAsPBH_ymeU9UiAj z#a{Lg03178M+fZp}pB*=SX!ME&j279Szo{d10kmCO=-bHP9n$Iw>t^OySn zK>;CGt@@k8ChzA6v^PC)3!|O=HlD3vCgyK* zp25rQ%$nH|7z%06G+gopkY(HcM5UwQ@>n^Ke&O9%a|kD`T}uvkaMI{snn!F%etAs< zDi2w5<0S{`v4M$_mHVu7deeFOd=RC_J+oLb zB%WaLjS+Ct*P?{-hGk{RBhFwbmm|CG!H(z9mmq>i#)9KJvCsy}0r5sBSuZq09bkFA z;WHF;ORyh$M+6bM#`osX30@qJlHqTEqDLK6ew`!{TBBdIl;us)8P1UDX&!d#Oo7ZJW)U>1j!Pu5vcDFK_3isYfa=F~d(CfF#9f3~_B@og?TjhBU9k2hS%3k098LDY(U> zltM|_o$!n5H*dPRSKWjgLFWT1gVkI=qpI1{gX-?TBR{ZjlnIjE;&ImUnuZ7UWPdro zxJ{5U@13Yk58<|qXGCD08qmYZ83s9o{ItHo%n%U@Yw4^1g$k1?TV79tAi0fnT-*7T)l_ng5 zYH;r2XS*AkdMVd`jRE0*+?+<<5^HM!9W1=9!i`VSn0Q;J#vwJ(QpM> z-LNSj>A&ZGdnOBCXayAruAQ^zD8A!YCU2PE%1VQl<+B5&NwQjXHe|i5YhJCAnXtQZ z@)U*iDw7V6I9`%X*~J0jse2ilktPfg9OxV+{EY%Hfb>Q9yy!{heeM?Ctt9-b6wHJ* zMohBHtDmP02tHxinM1$rWfhfhS{ua3Z78J}s~8;iQR6hlr$o?xVMWVVIEM9CEzLA0 z`!3*`28oY!!(ARP|)UH}MPAN#l4Q^Cyg|XAZDvs0y!3y5g zzjv1>cj^klLKT)uOyOihR1Sp-g1n40uP0B$0zkYN8;lESBCgWya!y=-#yFKD0i)Ha zr1ix}vamDSn;1~}oa#{a$MCE49c=}XIG9ZT4X~$SZX9Jf)vkN)yPRoffS|l&;JG${ zVvTTnRT%`EI?oo;Xtakr@s}6(mN$YtFQo9|#sxtCbz+(|3~LDV@ogNh{M(X=!y)?p zDAw~JW!Sjz?bD!o&{b+9(^ivsI`!Y4KYqjp=^s@;aNTr2tBSq?DyZj`8IGI_s!iycyYh|U&9Ip7mc3;_K=U~|$)nF= z3jU{?1hzogyP)nf%J!`-RpD{q!e$hUjOrd;n>TS!s<5>+!YkbLL8BESdK4mL+7GZB zC{~tibEYBm^jBk)WJ!Ks?N{b~&oN9Wmn(Xi$%A|A8D*_gQ|r1P+-2>~uD|zf>ur>U z=t_?mLJL1183>joxDuy$te-T`>xtSw=jE6UR_QH@=dTE(>tY!nHoi9d0uMgC$|6hT z@7Z~dWI{s$9X8nVbtPN+1r)v+P;oX8mEidiR$p=XXS3H+HlP2-pVQ42A^Pm=RkT_J z#wKWKq+dAE{SVwuKCe0vTL{!OV{F!ezJCYhn0EhY74#4$_sD^N#j>Q$K9O7j{Kww%ZV`r@(P16-^2d?^Dg@0`71hG?dxy zaDM(R&BLi6V-HdhG4QICI7E2UnZ3P!+Hmme6S=foHADwsQ=4Pf7z$@E**Dl!*?Rx8 zsp@4Y6N#8U(|C4Ipsac+Q57`m>S62iL zj#`n*{6>&_iNTr23%&wfAHZifNy>v8mxh7Ni2i$aPQ5dr!Z&?VyA9}Zw_lD5Zhskd z%fQ;>!wogY|4FDWa3Vh{kw?eYeK~Z+NlpT9n%*A+1C0#W%(USMX^&18cg}!1;~ltr z@aQU)W^XzFr`NOtSak&$A?!oAK?kygmO4^@=>WM2lUuvp%c;`O@o zZ#)DqE=N;8*uenrj?)alIj;>AbOPoP^~{RDC#Q^gAZ`zde?s4TAK?|c3jPR7V0RF8 zfP;f5^E~+woikdg(liGw$JK6~fdBwX=chdLT%A-OklSUJ11>hIv7JED47^VUVs)6s zDC|AJv6W@y2wHC8(v@tPEG|8R@~8fMuMbM41&gXGxln$%ld` zTKcpUN~~q%@fCTZgo!haj}@Aa@w)SO!qo8x*KU9+hcGoBZ-r*iPv^W4_cT$ZVR-Pc zJJ=54gm#VN)qruUb`wS$d=E*awpj*$Dy2;q^P=H7Z6Nmv#3A5_it=_#DY z!yfg2X*PSH*-Rq3{tdsWRd2!~;*l-BVp{DwG`~BnrSN<`4GhN7gyqILnk>tMnPK@c z$?6i^c<21rn+aOfNi!7nbG4g4w1Y*(g_oJ%99F?w;~gx#nU@}nJdc)`%3P+TeHUU4 zu@DHgFfu+B6s-Psh70Modk7D15IAX}`aXz&-vBw3zvY~8wb`B7Qg)V*Q1zLs!d+$-Gw(dK?sI(uUb$2>HzbtlW6ldA>;9GSV0zdW0NA zOq5TlaPc8>Oo#7YbI>^s#tY1!WY?R{en6eqIN1KFhI6tFe6JSCr~=w{nj!)HSFdX$ z7M}Krq&*XfbbSLLRc4LHBCk(G@Iz-Oy?aCvWT(Zw&f=54eefmky_igekFY$%Czsk5 zJAN=EG}{z2c{QGD=6#iJ^2A7UilcKTiyELn>MgeiAlKrB{(}19iyXdnuZUp_kPXVQ z6pxtuMS^cT0kFBrISZ=j60mT7u4@8z3GMGkR#E5A$UzNb%4ab(<0sT>V=*NfiJ~e* z#5|9>iIu}+1FsnT`*JesypP6W!JQW23`IPdi8<1TQgVHehgk_NL`Kn)9L-P*c5%Xm2i*8O5kMMmF9IDSE` z(;6>c$U+lLttolE1h!WqMh&L_!vajigG2mvIy2-;JFAa2y|iwRiLaGTJYh?_#!Yq( z#9cA2Yt9GjM8DoaLF?Do zOKvwechEnv2Y6Bpde1$HS9wwaxJ0}rDh`1Aow{DJ3z4%fG)ZH_XdRnClDyERbaA;k zWf_8e#KAXLVnbuh8A~&X4;S4hz&i=Y6vj@_w?$}RxiiZ=SMGu>N_oPmyUXL1eC(dW zp6|^s5fW&|R^Mt%72CdijCmth(c` z(b5d^r0iyW#nUH*Ib1O@!T&i#wZX>#49DE&+isA1_2+dKE;-or}JEUybr)LT7 zKq!G%`g0gM+u5GuZO;(`RAe((Ywy z#)dTAXli0ere?-$4KnM@fN9YDSO0|${L5fG(|zw3@SZ72l?R4mSsda zk2UmiZLhK`+m?C1r;v^qzkUHyM9MGC7-FXErQsZzJo79;tEX%plOw?~5hTwud!7@H zvyZyM9ELn1?Vr5nz zSZbji7@6tlUy%!Ij-HymMkH<#LqMO(&7{}PhZxY4Iv0qEyT>~BB~*Tv>$JFeH7(AZ zZ1Q0Yld0EiWz_LLg(EJa(6s%@v%2VZ_rt9O&W^8MC414`*sZy9~*5RZT1QwK7xT0yXI2$$X1J2gCQ!d+nv~%?(;A`-6Yz|g;ma1ubu

Hg*qxS?3T7)63AW_zq6=*sb;|kuK<6=HWc+x{E}iIpr{$>+I+AUc0_Qz| zaQ%&SoA^t(uAe@g`vo2MRTCr0rIdMj!XD9!M-{e4XkXYbw`*!RAknZ&<@CUniy*k+ zG7tCG&r9Eh?k^g(7a)h38 zV*j>5^>sCnhn^oN5@`8Dm*b5GG_2~sr}CwcQxP-P%X{y5h5b{O_v@YN(m|AZ@LVwd z6Yk)?j?Z?gRaBPYR>&+9DX&}A#q9%EiQ!P9DY6HLWPcIWi0h=MWo=p&J~1(`R&Rtd ze_dUlI_>DQH@(i$tWIXi`P1U%w@1X{G`ZxD&;o?sZycV(Ypj}b(2M){C!K^(OlQY# z-_m{#x-?_&u;5z;d%>>Dm4kWDT{*)yx6EZW3h1Y2?irJZneEB_axtAErNmKAdrbet z3{UCLxMG6t$&AZM&oMS>Ymzh#S2*b6W-G`lI$<&BmcsHh%tk*rO@@iG`8x@NOzUYf ziRC{$an~h0iq2C5UEesEi25DARiCqTds%-8nX)w-L6qYz85NXo{rNX61ri=f4Q!&= z@9N^efsF8(G>%geMe9Wb@inei5!%)JMl{vCn&SOWzuuEz8(m~-t{!U>w3*YPQz~`yyV_5 z{gWRWd@*;V>J!%Q-=Bnl_bS>-bDdlEmZ-I)FnWTS%e6&mNOQ5H0EVv+HNd=uAk1rZ zC=K(lC_>q;GrkD82Vi%PVujkCvzRn zexH^f?3FNJ^$~UhGeIJf@1#CGANYyv1Vd=o9XR`IagvZ{=(uA1 zVT#f%EcBb$V|)P&w8AGe=(wxMzNJMTc#}?}fz2iRGp~902d}Bs2RrYQFxQmG8zbfp zMK8FWbHP&>GN;~qT5jRN8Ppo17k}6?Hc<0YFN|}ibVf4l6$Y2xFV8e8;KUD;Xvf#} z0H_8=G)cDROPxRcdu^;N0IWkOucJHmteY}A|p3*P?NByBDSQ+TV1&yQl9R?S#6*F(I#-7SsD?hFVS@f zex6z3g0(jy2(RNR0=f2s8QGj$aF7h9NO{Pi&)GGNo1UAAt$i?w(y@yK>*dvX61wSB3+3N$eCBRkI^sLLlBDrH6|0 z`x*vdC1BZF0E_6R@qm{}@$rLe*ZkjGB9c88yKW!&t>tj|yturp)|>Dkwr(Cjd+#jw z)`heEUqB~u{VfHwJJKcHf}kv`4E4+lX%GExI@6sf|Wx-!09N7X-ILPg!J!{ z>?&a|TPcFo1H^{*D~1>Ef-#0GW?WtVGlKzodj&0G4c*8G`VFyIRU^6fZdXsfYR^!P z;)Wf@Bls?#3r!>(Hr{h=87lb2{&*~IQIT`|llbQ%TN#ImSKZ&fu+*mGO9g(4v~~@j ztNQ!rp3O;Cue_d-yo#2gXV4!h_NDP_B_=zU7|&-UXh03DG1l`nSRP)aGvpt!c-(+| z2Y#v4)9KgA3%uEi1gKBsUiz9(>yFD;F(hErC12wFFLBBc7fX%3Ra|zA5r$+Y?agyX z#W##@1i!%<)UPig-m6BJxpNcF{5JeMMav>S|iIr@U+Iu!V zAopt_IDsZf8{#<~zUNXmPx=LeRd5H$oXEb>n16`0K|dPg8AbeBuD!KiI6(>?c(!-i zGp75$Hfezb^+#wZ1GO(L)!(n`DzlckmpUV0cU3*r!P;b?ZcW0B#!FSl3Mh1Qo^W1(Q zO|HcOV-+p;1N*6NhIiLa-dA;0g`V2{O8wWJYj&x~mDP!vfd z{h6oiTjcV4PgEo5*)?rISR@?6aNY(NUNZZ#P5J-+garLo&Zqdgyccr3s5D}d2`Jh; z^AYx5zbCzz;=%kpIURMLg8)4|qujnplX)@vd>Eeao5|*F&)3d;F>Q~$;}%vFRQ|dqYhl~NWwde;*MC}TJV~qd zT3f9i%M-tCaPA^5sErxgYjZnm>i_RLh&f-*__^qp-iGHm7$ycp^{r zrM0QlW2L`h>E~^5wi2(c?^`Idj5<&5w%+YB zsng9}GlG)0Ie3$hnGj0M>&cBg;A+oTU%iI@ssF3;)(EY&d7Yl~V4`qs;5O`bgKxUu zj!EpFx+OZa@dD#@aqM<%dR~h5)Ubry?WyIibk*_7*FvO|yKY$YIUcR__lQP0G=uf`Vb&4Rd^lf?^-z!yEoSQBbgH&; z-2>>&kqy7PB5hl8MRykQ>8H38zk;NG3%xE9q-vA^7q@37lErPt^lkY{>H z=O;(2B#RfeOq}b$FPCs?bPQOZA*k~SWE4CdEf|6ZqyrR>#X!ex=p7mOP>k%Z#0`Hx zv&5g+MB9NjsTXc{FVhM-X}$^oxsHZ+&m)MwWSkL*K&NMVUE|@mZwy6NUS=~!ROyz2 zvFp_bE@%0D(C%whc^4z6B*oF3U&8fsBE4MRovE2hPtmdG)mxp82x`od+*rlNVIKPb zQT25kFe#0Sa1l=0Hya$#=}f?|G%v`OYb?0%Q$D?WPx;(6{8u9%CqMa@lGi)ErP>(V zmM`GleQPqxt%Mb&@w)(KCtx2?^HSqUmNj9(z)QK761SC)mG|i>DVFLF7YFwneul*Q z#owyaPD}Ag5i$xDf?b+dvTo^FyhrPEFEt62eBiM6a(S5+LZb2UH$UD0PltuooM22t z+gL&7Q+af2m;^qv*FqTiMcNZy!y^9GydMMUTI-ka^Su(`g_1#9wx757rI5PQKAmxs z1W+XJ4ysyGI~#RT>#ZK`HZpX6-e@KOy|Yf@{k$Hnf=ze8lGHgT+60k)FlNf$sc>>! z{>+8YVWo-3Ko84Ki~f_(dEAL%`;$6oksG)$98FsSa3Lsjwb+g*q%2 z_ltGmFJ9%MBH$a_CMfc@F}&PErq%2ibe&pSZ$V3T10@*(G+GSc;oSHaPl0<$YAtve zfpT;w1w+l;-bCkzc1IKrpfvUBJma#e47>B&+peHxbl^EoM1LSg^IWx>YTGeZ3J%_-B zL~c8dF7}V4*tZ%KR%miIuUQmQrYp4{e`{pbu=j-5SSaOnDw9itjI>V85^R;4YRsqD z?>sp$;wQd%ysI>5`bj5Z_yaV0z`Lur_$KzZXCL*v-&R$o9$NdH$j9y85s5;Sx0P{avrg3ho>3e zgVI#yl!%Csv!RT-f2>o=)NF^?^^@i{{1}0;^Op^lZX7h$b609?)kyCzXl`-{*lcXS4eaNMzZKdPTD9P$!#gbU#uawofCazX;hC-Iw?v z16PF0smLU7f70sgbS}c5BGr0i9!XIPaUkevf~vc?YhGfuc|A3#G-xM#yY7@xgW(*r z<@}}2a^<~WFsP4R;BLhYasJYo$iE+wA|w#--rYw>1`Sz4m$i0u)=g^_&K+AGWDf2G z`^k{{Ytogk9R8n=rml1wzMTd(jXz|Sq?CB>zTKai)t`^VJUc$Vo z?ld^;t`t_?DPkYXEx4s3X!0tHYavaqEm=IaH-m)uXPlEWZSvh);X@5(D8ZrI3rGHo zYlm_tzf(MH`x6s?r~H;}{NsO|zLk8_$=Yho$; z{7Xu@77{u4z2ey;WsqjKe!TV6USY};;;a4b`*WqreiUUXX1B>a{&6>k#_tA=pFBk^ zZ$GaU_thxPnI@TCoeuuZflJ857jhQ~%?Rvb#czK(KlMH)Pp#(5T5Yig+}(xfo%ER;>Fyf`kk%$W~bdo-MboS)<%qB>Ec;*vOSX- z16+mekE`|zY(WP$zs@-7nEW}4J~JX-k-Y*sqw>H zIo{L(6yGEdI+9n^Sh5zmsi>(Zm2q)IegHc`lnXMTC6i*kw2&hQtdQ^87~CdxzJUWZ z2#@;I?S|r}Ov;ptPgZ;(nBYc!iPH_wslA-OJz$JH@)(J~aQ8*7^U(*fl_ZC!2EWQ) zz1tu)GsrOwB)@9AcGTM-hWvsln6tfG+Pj>QFJgm;XJ;Pv+OH-U=6T*HArUSQ1#&+35<*L96=zPnHh*xF9K z$cRxQs^?c|;3nXgo+PPaIqLP8LJ*2U>}Sg|^SV zCB>D--|ncHBq5I;oLPL^^P~Oz)Bu}Z%M7>nN!HP=&lmd-X4@2QV$3L|ead3})VCT) z-Rrpt!jz|+cgu+sI8)Gep(lk0jTP0pFNp_KpJd}xpQe@kaF$zu-&#*hN%8gTqFG&S zxmNmi#V9(omCn-nqxjt%wXX`Vwhxw>40OxWuMG#WQcI6(sW#;$-qSs8TozLLt4=*d zzt<(>;T~n}$gKpji;g#{U9ji<4%V_ZZN3mP{yx300U|8F?vCOfkLo;n&NQMFk~oac z1{2-njp3OTLE$EnTd#|gGz69_35W69-4ZbtbVhBny>b!zE}Q$^$e(j2;S)sfJ{(H) za;6vNA)~|?+s9HgG$?B6R)5MHt1aG^DQ?RN*Q!Y{@G>hL(s=4Nlkm( ztft(~`FZ69a&g`?1)ba^wMJ-G`C58I&%Y+W>+{NWO;!i}n*4j#yqcrkr~mYrHYV{h zeSh~7bNj1>p#eQY&78N$qBZVHB#QMzlv_u%sI9(fK_EhI+wy2dTev9!KH z6H@!Sk|eZ@@zI$C1QRt}8vo$>VN4fH}y3QwnsguOAV0Epuicy}z>nv$>{|zH^F+G_|i-{rrt> zaE8V}#qD;ynZfrLbPslcM#O{*eY|YyP7ng_zKZrnep`emPhPE3VsW@aC$mSy8!hYU z?{iH?*P>IX_u=~6qYk0lbXm{?Hx%K+giGet{>w|u@1Pfkgj*FZ(*%c57Fg;I5%Hw3 zRUTR+;=KrH5L&e%0wCR;7|RYRyg5Ud8EJ*sb-6{8vXCh!6RJ5w4|N(d*XDDdp{97h znQa%RT!i)-A!?28de3NEqIWchQ-l7r8WxI|NBbj<=lRAZKA!LA4e63X3z^p^O#3Xd zpxwP%)&h5BmM3ejUW3xLGRr!GVY*k9=SiL|;LbP(*_~8nlH?T61|pSeI&l2 z$*dclm+&gsz5S0QiKiiA)S&V^aNn z#np4fFR%S@us1GMiVs2P*8Kd&-%2&(p^3#!x`Fmv6qte)&28?0O(jg5_XKhe0fw5u z!K!aH6I^^|uW<5bKrZv)Wc5pMw&aSqhD4wh(uqN26Yi_csJ|-CLrs%Ggu6>xpaSt_Myk4Iyz%DG6uu@lu2Fd&77LG}|Z(nBI|n^u{=zSNT2zQ7W&HTbkrQ8uM= zexK-!NllpJVc#e(@9w3$qqbk4dSRPa9uBt{WIgPvaD$<*TZN|x&l+ZewP-CibuyMp z=*Mi9pl)&D>@WH<>*aY|zuuii&ozp}H0R;3$(q-1lklIn_OS5ojaP=|ZFu~L1#l!0 z$mhSni2m1rDvYR%Dt9NfKLlB(R!R*HL;VVqU+22d zq@#N&IACr;&4sHX8Pg6n2#MfEfh(fUlda?mzml)fu3*j_E*mzA8pu)zr-_m|TK_aW z#r#;2Hf@rWxP-E&>Ph(~Y+)Mo%{a^jpOl_0K$VsrE@;AKH-%c7_nG5)T)7@zS{TGnNP;#Eo-y3~}Z&&O4Ep7rIBpKDhOhAmSOm3!{6(!v3>i zat<5))Ox)CdM(u;(I1v0%H8<_-Mh%wl>*ehlnA#7MFo>f#!MStQfI_F+1%|A@l}d$ zq-JXPQEWR4=2TmKn#Ta8?N2+Lvm`iYs)foVWS$s3pSPIB-ShM~NFlM5W)n)l=?~*z zt(hp#>xBZIH`Qj;Q%Ra^CH#=k%=S;W4AMu!VC>)hn{#;60~qR$UU$(^nA-{G=yO_o=> zCNPkn@ptd9Up`&%jr~ICD|)5%Ga%bCv)&Cf{(8xY2%O5tpcKLHCA(kojZNQ?AjCUSr=M!wP@+(%Sj?u_=*Qtt-C1nDW6Bh^CF^`36hA+ zrU~>tvF=y)MUc1^@N<5EivFo21--0y$@=c9cWRp;lSHCkK<#{wDC_SBQ?-@V`?S}b zz*%^*|w>`0SPt!z@j9bt#P&~IKdy3EwYmzRlV6Z=|Z#`pQdx{K$yLryor zjq9Y7#bLTMxh|k|&;me8V97g}gf~JU#d(LUcpv#|^d)Xs08TfXKI?&ZtQy4X?$$fV zwWXzS^adZ!QqO2o%Mn|_^vgDyuK-K?xyhwSldHRB#W9-pna336}TVG z{i5{<5=2`yyA7%H3<8U+0`mm2OddAqS1W`x$1cSPp{79?QTo=ss0%G8tkzkn)H(c~ z&BL4hk-{0<+E1bjiAg^XdlDGInB}ZlgYTn3hIP_>!&5|71bKdqRCvUqaW$TLOB6kdjhE$o-jGK&w-qeK6F)>4Rxq{!4N zl@T$raTcb5tl8oOf|9C-gx4S80B>!eaKf(=)C7}e?5}&`jj?TYUVNN#eL3&z_y%WE z3iGT-i-Q^k|Fkwabq2+LhDx~oT-$SF&7>07H*zB^*-kYtlK5FRV9m-pdJlhD5yJbNi52!cpPgxbWPh92&}k>sxb|NKdG z7r6hl{q)y<)M9wre4$lSy}kVIsA#LGC(sddl?o|;#x5a;I}B+A@*IE7WF7=Em~z#Cq;Z^fb(`C}G*H`hOj4h@Vd=RG~WC8_~vy1O94MG(?dR1OZVPZvt%5}WQ`d|U!R z;BG370P&A)8R4c?W*J+Jch91yOr~ldwfAf4N2UAkuCZ-^S)DSy+Q-cvzRx*Y7oR2; zq~vV|e{X7~>Gvy5cy>o9`So)r(*4LQV`~r#(Z*r5pCe+)`hfN}0)v3w%8v6?5J5c7 zhTyGwk5sP5D3saMFxcusSYKw3PGa~gN&MSeD;gsob@n|?t+cCB;D`|J;zM|;djAMO z+MW8wbYhOu)?;=81N~H44|gwGyTqB2rp?XZjDK9wr>k~ z4|;GP3GYd6mpND_OZ6l7>4$1N3+C+!)vjcBN*2{htGY>hv;%i=Fn2Y8-ZxP&=c?^% zY5dlxR7B)M57HlGXt=)&%84VxqKzACDuhelv}JV}4#S4KSzh*QP8mO%mkAnK+rxj{ z*MI57$qCScy!}-|wb%?QnK3r0z|Et;PC?Q?)~lG?Jzk69KTX!*YO z0S&7>`8_ZOTdRou(I+R>(6D)!1N4r31Dtf*LQ_S$v1+2>E$SjOH^6juxM3DEOhr{s68vgE!sPgFJJwONpaucb{-`28AM&1Y2c8d=1R_3y0pEbs9tF0)?B zH7I0kjup6JM%(gkX}Uosl10Wq(olye_iPaYtk-Y;vb8h~<&#`5?|b?WMiTy86d4I_Md?O5Dl2n94};bBzq14dJH%c?@&Esc7Th*X@Yt5xs${NKU1O@x@6z-!`EZu+_T12Su}wM*H_ZGK&46zv41HyM9bpasKT(@PpO4?kId zo6SfoXnKR~kv*&AUml~0@Eys&pM+9B+c>1HKTk?m_b9h^gE^BwH>TVq^d{q*96-kJ zKNSI7^6p3fnoSob!P{>5gnKW_#wB?0e2%c^p zL=sD>u_L`0>Gg5`C6M=2H;K-=QO8JmZh`PDE-sz(-|M(U{_k}ts|VX2eG4W>H7ED{ z@i0Y2@esKMki^Xdo*oYYKOiEyY&hj^nUgP2{k2wXBD~BVGlDulGt%FBzJxzanuR4{8k^}`yS;4}(DUbNz$hr(Op=z-_4=7t3Ukjm z+rmx37nDlXFVJ!@Lj{B_Z3UvO!W2TWZhxmgKcT!qe#S=&yW~JDc;%nJ5APKVyeimH zx10ZqwyZGOaqV{MRY7jjailmXQ4|=->M+d}a_(vFIq4 zoPX^z@8MAe!(8e6NkJqn|AF$A)t(T^NqeTe`e(hu)sVs~{Twca@c&=T|GPVL9qg|j zAOF61+8(HLEH*Qm_GG&1;YHB48Xnf2W7d@2P|jqLEH4zbky&}sx3|mDb^BY4lxBKietCjGf=1G5yh3W90fb#WODIf;n_9iAORTN-I-! z@!yv)2)45g+U z6&}D`RV;_>C>mps~te$3B}v?C3|lx6~rzNVrZ!s58P2RadvLi2_s zu=(59wi3T=aqq?2!R}hLERS{1OoN|90N97?eQ+{f+0RH#5r=YGXcI*vR{;3RkO1*U z`N$Dw!Wzt+PZpZXjE0Gr@?ZULM=MG+FP=m98VH>1bt+&1R-;7~QN!R^r=zI-LD7 z$Oe@_&ep>l=io1on?|}j?dJghqJ!-^%k?hIw?smyV?-LQ2Vc^_<1b?$9z!O?B#JRW zq2fw&Igb$taVZmLa&KXy_ByXpBg zveaWyvv&KdNjsv(}$|aa>Q814SlIDNp2v!0!pqJR4K; z{D}&kwPlzK$Gutd#LHH;!j<=gbyUq5G_bXVaT@7K5Y<)))vuqy9n~pJN+HL<*$u|9 zE4_PmDGFoZ7x{6j;(1i(NOg@K_%1VIT0Bo&mB6r@XF zHX#U%2#5@l5`rlD-m~BBKIb1e-;STbwV1W$dG6=Fe)n|^oa;XiQ$ga|I6N!H=G#Nn zN6ePQm>EcjR^=VaVY=CvA##rd>#0*3hrv#LXpfMGl+(CU{d}wN$kpIikNFVWGa0U< zdEHY?Qpv73j8+x1G+MsT?$szJa4ZOX5Lz=F!^@NWZwZ6p_EY>2;1g<1pJT#j^W5jw zs1w>uwys@>vG=fXMS44u-*PChLZD93YOzh`c_L;mWaQIp0#z^?v25Ggu7=uSP0 z9#7sQw~6z|k+N#vtc0%h9FQXS(QGj*SGw>ZsBx(-)od*!B#5H>ec}rCp+GzjS?5U> zK0i&U<*K_rZk%^_Nx$I!u8itrH=3$!5@w3}TQY zz{GxU!9E$~kFaJ)qSkJ3RVg`dGr^})8ugv*?^uR7`UEyPPqKijtqd_A)0&pFmK+kB zW@3^M6#FSjoohLmgL}>b!4c${8n_@2wFmr&{@3rI1WE7^hZ4lNk9U>-5L_(7zFmAI zEztcadGKw@UVtfr}#n2wA zeB?_9{CMOt8s>*4i;4cevrWedk1oKc z|GeBwHyXB60*BsMu14Qk;t1&Ncj@u9J?~s+tXA$E&RHfA5T`^@L*s?ZRT!?Pl&y<9 zX52lG6^_d&5wWU|2j}3Nz;mDP5wTN_+EP-xtSGtDf~|;p;IG2poR7p~%k|k7Pw}Uu zI_t80!Y3#N-~%xwERG1K8`@J-FbslEF8CTR_Ft&boqMIWIj6Zb%}t5A`DXKV@dLR8f3oFYL2rg{v9^6*eDXfFlE2zB5?RJ{%pTN z%8=sQtv77aW-wk-V_u~#8OTpHIw(OvBS+$Lk>dcyF=&;EPd8SD{B_Cwt^vWo-9645 z=(n<~h822`wG&^MCPmJ)W6iQ1I!`|jU`zZ+MI91WC+4mqZH5oH7*4JnZiWeQDiFLORy}2H0iWtY_T&YegE<6KXNi%qd@-^6GE-^OeLnEs|cJY^N zUXM)L<$4&rZnc zk{=?aal?9$87)vbv-eM*PtF6*mbhV&4#BUC zgx8rrJ3Y?=JmeKp}Wy< zp+2g!)x00*w~S0R&msUMFJHC_EI>wU!{!Qflku;wru?$i#qiB;-le4^^((qG5EXvy zVu14DFt~V9o2umcZf!>%OSoU?+^YcXsW2q@+NB3pb#X(i?%lew%Ge0$lc#IU%r6>M z?%*QXgxo_HbE(A_l@~~IhAE4b(m$=v4@&)gWd8=q-Vhv8rUTi9>g#ijA_rU8xrZ40 z*W?SE79`!b<>x!P_^mV~c}Y%M8SI`GA0G(#(Jnjo3VT58)P3UIN4m+>VWo*D$LmQ0 zZ4SLl(F_n6*lZWnck{LC*eUty96hGpMf)7zJa^jVWd>5f5a-;c-ZYjc_x zrl^E|>Tu*#O3bcrmbkTo> z&5Af<=G3XoL?$&F_4DIzWYZG!po~->=?atMMs5{51T!cB`cibt1S|5muYX2yU)UyI zfn5u{m=bpMxO>ok(|iRk*ZZ4|Ew&$*4pHS|E`X))u2YeL5@#0`X}C&WxL>(Ljgd89 zQN+oPh6 zZB-SCxZ=(}Bk}7&^dVWxwMV7&tAk;f~^JqzRv65 zcGmIE_iO7eR{X&a>3&F4DB&t<$&BafE9bi>#Ta}Wh;54SS0nZ7u)ZKg$i!)cRPwT- z%2nlw9FP4?>}Q>1Z2#|BM|moAZNfEHf4T%{K~Duu@boM;bUZ(Vy|qR=dRRj?iPw zbahD~!umolK_7k1u_DKm-zvH6}m?XCfQn?T{`RZd!iy9ob;h!ssdoYb*9RtU&bmBkVL!}FB%q6&RcH_wH(VAN8fOzCF43xVq*+{GJAEW15bcDevfF9 zO6Gngf^Ie4i1@)CsncoLnS(iZ%FRmmlLYJo30v*0 z5^|INCt~64zYEGk{fjzIgj$b;HO1`L9|A&iqrayQ6;y8{zrCb*vTrXCltecG;FCij z5;s{fZ{+ICP*bc)gAFv7iaR>Dy2^Q)CQR#1c+u^dm-jwa3>h_h=y;7IaR*$RDhW3Y zd$;Jll3&vD-_~BKPS5hAea|Qvm$tyzH|mWuT-gm%cS1}@8;H~_2|rP_ zcwh`5RDLP2aDP3^=09}V@*0I%1;VcVcO-3wwi||la_3jW=1sX5AgFjSy!RlF1aWEB z4@0q*Wg%FSp0ds1V?%Jp*BO`vZi_yHF$91mUFjWL2 z8aXpF$06QK>Rhn*u6Nn6n60rtoj+AZVYK}rV;C4ImzAx*Zs%b*k3^!-(wfOncKcaX z4~Qs)Ya?GVCR1f2n8+SsC>HDPbe#zc>?3!-a*O=$sNanQ?z?=tIFy)p^Gqgp6klJp z%|3G$Yo7v=Y$B{C~p zR}sNXV)Hs^H>Xz2mAUZw9o#OLwjgp|^1pKYV;Aof;hvxSTa(X3nEW4slK+|Hmk&99NI4HkQd2@w>pC;`5)x$xEi|-JE zpA{p&pHA_ZG5BOR8si+t)u#H8f;?+fsN1q2DVW@NH5g3#gl@t%YVG%VSkb+VyGXKf zKCqv|`_|38HW>8;j8YaFEi^WG7rVOKXRa8bH-Qm*i)42|@a?m;Y&k6vHB{)2B4L?! zkYTuphCve~OeU&_{ARU!5P5P8XSyVv~os)nFIoMJAbhdd+3)koXU4bt9jh+15`{JVPr2rYr zHSmKtSermWuZAl;yqlC+Kr0yczv4-DS6GV!P)};0SLzIUk$*t1(nmceV}Io*J@E=O zezcflpCQ!T$TtU2&fr7Cl&o2XRru=JTD;=nb%eAaDi=ALujA)4cG{=Flj4z5L|C?_ zRNmp+JXwkQRy~mXrQrgOPMI&4X3(f-=wM*H9=V+(q-jZb$NgodhFdRJJeKva27-TS z{WnijC~(w2^+kcqqUmG_LQ+#5uWNg%%u@W!o_buz5A62yPmlc}_`|PcCS$?3pRJc} z1KTQ%4Vv=`h#PKjgcB7GmKKIep@6&4rJ$aV9fJ3ToRf<;Kvn}*bNhNX*rSg#%{^Jn zwlHzfAv`gG?rX*h3>D(Qu#i@Mza*qV^z#k`wk5ENG<}TD@sG=FIhpltE2cl*eS4{` znDndGL%4&s5Hb5K!mL)BmtkvvAg+wX-)+#2J+mxXo&aUKK1}xtDX9kk@C&APq)W^{ zac!G_N;UJamC0^vi&r$Tx`+Sp<7icqf4bDU1IHxI0=# zd73|5a30(5LwYTu_-aYYrDQ$Ddmb&Lwk+{r@S=amND;ijRKAo;e>R*E%w>+TpDV^B zFL^HK`6D#TUVs1mcrE*e_vKf9{mrD$-+!ItHd&VuSO5j}s9TuT4aTG|2})8K(C1*B ziF^IywpJ$*wsH-OV81G(p29OxDm%80P$Eyoe1O)T)8vNs(>WNFviRgOJBuUjW8zQU z(G`;0c`B?m4k?=S*V5M_rKY!CjTq9bpNdGrV(&Xj!bTU4#~)2e=TXm1pJf|%bkCe~ zS%6G2hE|_&7BL4TM<{s?OxaSJ?Aabpg`(Ko=gK!Q-8w?KU1Jr!&>^lCuzCt!*965c z(nV(_r4lD@ld)*{9+!vqMYzaLQ2M5s#rdfm=2dme}xz*)mMfA~e&JXx{UBR!QL|7CTOV4Bv~ z`7<=CsiTZedrN$5quPq`BHBN@VF8n-9`XYAe55e~3Z-ZoeaN=!Dm)j3#bdEX$GkLQ zw39z4MA0Zn#IQ-joa9-_$nV2!`F$Wl8H&`kH6p+ds%M0_@ptq9!D(uC2+a9hgI(yVNYC`U5L6`NDY~ksLr3H^s9>BuW;bD&KUg;2H^5uDjJ|2{ zCfCa$*pY5I?J%_{rT)_zOGnClR%pF4kX=y8)>3)FE%*w6PFVib(aqJ#B8Vi~CE)LY zR@z^eOJT1&zA6EYp#h{fL-)XV_ff_z1OC(ZsB8nVoz*t2F0M3v@?kf!I*k+B zeQ~2OqHEoE8fY*mR8s#6Z>*T#K zWFH%i5j)Zw=*+Bbk(YjO;e|84ImD?q{yfAJ&G4l?0RV)H6`_8_+V) z^AJ7yK8f?n{`3G4;#YHAS0JK2t)4~lmEXf)Zajaa?G4CxKPn0g4=NzeMi(cxjal|s z4DoY7NGJKb6aV`R@{!=&cME?aX?}dY`Pt-7;qRZ96n6)>EsYj$<3s9&eqoa^=s-V$ z$zI}?e&bYy5K7i7?zDJQt`cT#-<|tRc?UURN>c&(Xey*`qbg?`<-`9p1S2m~<#E_T zN(u zxmG=QF`N>6B(oq}Cu!(cvgyp^mSKpopBVSMealmY*82el2(U&FjjQ1s#1#{-c=! z-MnwZ;R-#ut~+|)tyqVdw%x7@)?yEj0_rBz}&HCgBW3QacsQ!-$_}zIu$)CmR;bjRCVyu*w zVBvp4xf}@P*KTtPU-%=GKe-EY;{;l)vH#bPfU*zEQ!%(-(2#?p1CHyWi8Ad-dd3AH}8#PVpWzd@q0PEk| zT&Q$|^;Hx4N;G5lDhUI472NOD-VML{rIwOc4@^Pa!0pSV+0QxG;wxKV2xPUF0~X(P zZZnxl;!G$xlepUDi0fQJmbGe4-@w`HPOOJ*{V?7)Yk$H(+O`MJSVDB1HcT*3noUcQ zu&D(B1W9843=l}VYBTVKxJ+;BMiSY+U^@Ilj@@*Hv%oudJ~Y?+lFZ?~2^L0r2Xu;* zrXAkrAjh3o&O6UhiY7ihcaQWwX7z2ZD#);9_|byN3)8fHDJ+_qmkhpbZdAH`Z2p2q zu~VO6=6w#ixlqs|fL||#>>dFgQ@xn{%R#@5*qniG%?ArpRVcqq`OU9$sYs0DD`XcI zO!&rZL()g=+km^<;eufwcTRtwxfl@qe!F>Qz5czSNny{ZyN7rz9aY9g+Mm46Xb_v^rUt%1aE$o?ru2Gd#7 zt!IoIFG;e9hf}aBEejckU^e8-D|t-8D|A}O;w6U^0#!INZhm67UfJOGe_` zTyNa97%a2NR7eFmo%gJ>xl166Ew+guz!lgo|_i~bywoJj_p z*DnY0#nfre=-nmvjBO%0frW%2^0k*MTYzX+4VB60mT2V9BkC82>O5nj%VM62MQ~pi zj5m?o%^+i2xH8(y-+RcV*ZkmIQfA6gGh^LW*wfHa0WC!TpJ@f7C`#KO-!@MNr(Fofeyi{^x7n@g1*&?q8ngw!ueK}QL_@!=$2)k3kJDaOOAH{k_FEbKs2da`~ zipU4J68sBm;^ktkALi8DYCL1*%SLCxVSG2!t2n>?=dO-e*&C@(fJzxwnDH-ta(H`- zAoH8-3l0*tJ`wQVxcp(t6We0CF&jM^U;Ok`laC(BbtBoR)Fh1kPgK4;Mt&6|{N^tC z>NXye>UH`kd@=c`8p`%17DAwF=?FdW5#kNUJq@ZTDL2^3B^`R=O>W3){&OECi^bW4 zI`c*bV4g5{I)B);&#^21iU@eiyWGEQ6S$X1Oo2XiDC7^%BmcwRfk zhB~>*s@_$lsgj^@(a^y0fcy_^)$Z7T9*w81$QXWhK9sFS!t8=U9uE=Iri$aKDuQ@r zy*RV2z8i3alF{&eK5wspTn`4pxn3%`R|WTS9!@sCUj|uID6ZI!}wg%qJeNub7l}^Ic-EE00nd3ANqKoj$~5zPs0~ z@CW6(D+DN)7w53we<&9t9^9hx98LVQle~t$pL@GW2A*X%25PPUT$n=x z{y@hwkL&)4;>LTMd2+r%dXrgZ|6>C87yM#RJdkP0H~r22+}r>EQ2rl&C`VDG%>0=j Tw5o*vf`8Z4_0_5oH>3Xt0Z;yy diff --git a/test/image/baselines/axes_linked_date_autorange.png b/test/image/baselines/axes_linked_date_autorange.png index ed2bcad1b17cebd9dcbd65bd85aa7c0103bca5a2..3a2da78fe9fe645485e29340f2825b306f8d585f 100644 GIT binary patch literal 27126 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 ASO5S3 literal 30228 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 From 0f5c33c40d0880054d5891c827e8b9aa0870db55 Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Fri, 20 Nov 2020 21:14:40 -0500 Subject: [PATCH 07/10] update splom tests --- test/jasmine/tests/splom_test.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/test/jasmine/tests/splom_test.js b/test/jasmine/tests/splom_test.js index 7052124d76e..2b43f198418 100644 --- a/test/jasmine/tests/splom_test.js +++ b/test/jasmine/tests/splom_test.js @@ -537,9 +537,10 @@ describe('Test splom trace defaults:', function() { var fullLayout = gd._fullLayout; expect(fullLayout.xaxis.matches).toBe('y'); - expect(fullLayout.yaxis.matches).toBe('x'); expect(fullLayout.xaxis2.matches).toBe('y2'); - expect(fullLayout.yaxis2.matches).toBe('x2'); + // not necessary to set y axes matching x, since x already matches y + expect(fullLayout.yaxis.matches).toBe(undefined); + expect(fullLayout.yaxis2.matches).toBe(undefined); var groups = fullLayout._axisMatchGroups; expect(groups.length).toBe(2); @@ -562,7 +563,7 @@ describe('Test splom trace defaults:', function() { expect(fullLayout.xaxis).toBe(undefined); expect(fullLayout.yaxis.matches).toBe(undefined); expect(fullLayout.xaxis2.matches).toBe('y2'); - expect(fullLayout.yaxis2.matches).toBe('x2'); + expect(fullLayout.yaxis2.matches).toBe(undefined); expect(fullLayout.xaxis3.matches).toBe(undefined); expect(fullLayout.yaxis3).toBe(undefined); @@ -586,7 +587,7 @@ describe('Test splom trace defaults:', function() { expect(fullLayout.xaxis.matches).toBe(undefined); expect(fullLayout.yaxis).toBe(undefined); expect(fullLayout.xaxis2.matches).toBe('y2'); - expect(fullLayout.yaxis2.matches).toBe('x2'); + expect(fullLayout.yaxis2.matches).toBe(undefined); expect(fullLayout.xaxis3).toBe(undefined); expect(fullLayout.yaxis3.matches).toBe(undefined); @@ -608,7 +609,7 @@ describe('Test splom trace defaults:', function() { var fullLayout = gd._fullLayout; expect(fullLayout.xaxis.matches).toBe('y'); - expect(fullLayout.yaxis.matches).toBe('x'); + expect(fullLayout.yaxis.matches).toBe(undefined); expect(fullLayout.xaxis2.matches).toBe('x'); expect(fullLayout.yaxis2.matches).toBe('x2'); From 1de111d222f09e10b4e0912e67714af000367024 Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Fri, 20 Nov 2020 23:10:08 -0500 Subject: [PATCH 08/10] matches + scale interaction tests --- test/jasmine/tests/cartesian_interact_test.js | 132 +++++++++++++++++- 1 file changed, 129 insertions(+), 3 deletions(-) diff --git a/test/jasmine/tests/cartesian_interact_test.js b/test/jasmine/tests/cartesian_interact_test.js index 335adaecf6a..a351246fe22 100644 --- a/test/jasmine/tests/cartesian_interact_test.js +++ b/test/jasmine/tests/cartesian_interact_test.js @@ -872,7 +872,7 @@ describe('axis zoom/pan and main plot zoom', function() { var msgi = n + ' - ' + msg; if(opts.autorange) { expect(eventData[n + '.autorange']).toBe(true, 2, msgi + '|event data'); - } else if(!opts.noChange) { + } else if(!opts.noChange && !opts.noEventData) { expect(eventData[n + '.range[0]']).toBeCloseTo(rng[0], TOL, msgi + '|event data [0]'); expect(eventData[n + '.range[1]']).toBeCloseTo(rng[1], TOL, msgi + '|event data [1]'); } @@ -1037,7 +1037,8 @@ describe('axis zoom/pan and main plot zoom', function() { desc: 'drag e on xy', drag: ['xy', 'e', 30, 30], exp: [ - [['xaxis', 'xaxis2', 'xaxis3'], [xr0[0], 1.317], {dragged: true}], + // FIXME On CI we need 1.359 but locally it's 1.317 ?? + [['xaxis', 'xaxis2', 'xaxis3'], [xr0[0], 1.359], {dragged: true}], [['yaxis'], yr0, {noChange: true}] ], dblclickSubplot: 'x3y' @@ -1045,7 +1046,8 @@ describe('axis zoom/pan and main plot zoom', function() { desc: 'drag nw on x3y', drag: ['xy', 'nw', 30, 30], exp: [ - [['xaxis', 'xaxis2', 'xaxis3'], [-1.442, xr0[1]], {dragged: true}], + // FIXME On CI we need -1.425 but locally it's -1.442 ?? + [['xaxis', 'xaxis2', 'xaxis3'], [-1.425, xr0[1]], {dragged: true}], [['yaxis'], [-0.211, 3.565], {dragged: true}] ], dblclickSubplot: 'x3y' @@ -1588,6 +1590,130 @@ describe('axis zoom/pan and main plot zoom', function() { .catch(failTest) .then(done); }); + + it('matching and constrained subplots play nice together', function(done) { + var data = [ + {x: [0, 3], y: [0, 3]}, + {x: [0, 3], y: [1, 8], xaxis: 'x2', yaxis: 'y2'} + ]; + + var layout = { + width: 400, height: 350, margin: {l: 50, r: 50, t: 50, b: 50}, + yaxis: {domain: [0, 0.4], scaleanchor: 'x'}, + xaxis2: {anchor: 'y2'}, + yaxis2: {domain: [0.6, 1], matches: 'x2'}, + showlegend: false + }; + var x2y2, mx, my; + + makePlot(data, layout).then(function() { + assertRanges('base', [ + [['xaxis'], [-3.955, 6.955]], + [['yaxis'], [-0.318, 3.318]], + [['xaxis2', 'yaxis2'], [-0.588, 8.824]] + ]); + x2y2 = d3.select('.subplot.x2y2 .plot'); + expect(x2y2.attr('transform')).toBe('translate(50,50)'); + mx = gd._fullLayout.xaxis._m; + my = gd._fullLayout.yaxis._m; + }) + .then(function() { + var drag = makeDragFns('x2y2', 'ns', 30, 30); + return drag.start().then(function() { + assertRanges('during drag', [ + [['xaxis'], [-3.955, 6.955]], + [['yaxis'], [-0.318, 3.318]], + [['xaxis2', 'yaxis2'], [2.236, 11.648], {skipInput: true}] + ]); + // Check that the data container moves as it should with the axes + expect(x2y2.attr('transform')).toBe('translate(-40,80)scale(1,1)'); + }) + .then(drag.end); + }) + .then(_assert('after drag on x2y2 subplot', [ + [['xaxis'], [-3.955, 6.955], {noChange: true}], + [['yaxis'], [-0.318, 3.318], {noChange: true}], + [['xaxis2', 'yaxis2'], [2.236, 11.648], {dragged: true}] + ])) + .then(function() { + // make sure the ranges were correct when xy was redrawn + expect(gd._fullLayout.xaxis._m).toBe(mx); + expect(gd._fullLayout.yaxis._m).toBe(my); + }) + .then(doDblClick('x2y2', 'ew')) + .then(_assert('after double-click on x2', [ + [['xaxis'], [-3.955, 6.955], {noChange: true}], + [['yaxis'], [-0.318, 3.318], {noChange: true}], + [['xaxis2'], [-0.588, 8.824], {autorange: true}], + [['yaxis2'], [-0.588, 8.824], {noEventData: true}] + ])) + .then(function() { + expect(gd._fullLayout.xaxis._m).toBe(mx); + expect(gd._fullLayout.yaxis._m).toBe(my); + }) + .catch(failTest) + .then(done); + }); + + it('handles matching & scaleanchor chained together', function(done) { + var data = [ + {y: [1, 2]}, + {y: [0, 1], xaxis: 'x2', yaxis: 'y2'} + ]; + + var layout = { + width: 350, + height: 300, + margin: {l: 50, r: 50, t: 50, b: 50}, + showlegend: false, + xaxis: {domain: [0, 0.4]}, + yaxis: {domain: [0, 0.5], matches: 'x'}, + xaxis2: {domain: [0.6, 1], scaleanchor: 'x', anchor: 'y2'}, + yaxis2: {domain: [0.5, 1], matches: 'x2', anchor: 'x2'} + }; + + makePlot(data, layout).then(function() { + assertRanges('base', [ + [['xaxis', 'yaxis'], [-0.212, 2.212]], + [['xaxis2', 'yaxis2'], [-0.712, 1.712]] + ]); + }) + .then(function() { + var drag = makeDragFns('xy', 'sw', 30, -30); + return drag.start().then(function() { + assertRanges('during drag sw', [ + [['xaxis', 'yaxis'], [-1.251, 2.212], {skipInput: true}], + [['xaxis2', 'yaxis2'], [-1.232, 2.232], {skipInput: true}] + ]); + }) + .then(drag.end); + }) + .then(_assert('after drag sw on xy subplot', [ + [['xaxis', 'yaxis'], [-1.251, 2.212], {dragged: true}], + [['xaxis2', 'yaxis2'], [-1.232, 2.232], {dragged: true}] + ])) + .then(doDblClick('x2y2', 'nsew')) + .then(_assert('after double-click on x2', [ + [['xaxis', 'yaxis'], [-0.212, 2.212], {autorange: true}], + [['xaxis2', 'yaxis2'], [-0.712, 1.712], {autorange: true}] + ])) + .then(function() { + var drag = makeDragFns('xy', 'nw', 30, 30); + return drag.start().then(function() { + assertRanges('during drag nw', [ + [['xaxis', 'yaxis'], [-0.732, 2.732], {skipInput: true}], + [['xaxis2', 'yaxis2'], [-1.232, 2.232], {skipInput: true}] + ]); + }) + .then(drag.end); + }) + .then(_assert('after drag nw on xy subplot', [ + [['xaxis', 'yaxis'], [-0.732, 2.732], {dragged: true}], + [['xaxis2', 'yaxis2'], [-1.232, 2.232], {dragged: true}] + ])) + .catch(failTest) + .then(done); + }); }); describe('redrag behavior', function() { From f78b46e56a02faabba6d9b2bda06a2706152967c Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Sat, 21 Nov 2020 12:37:10 -0500 Subject: [PATCH 09/10] fix matches + rangebreaks, with a mock --- src/plots/cartesian/constraints.js | 40 +++++++---- test/image/baselines/axes_breaks-matches.png | Bin 0 -> 22271 bytes test/image/mocks/axes_breaks-matches.json | 71 +++++++++++++++++++ 3 files changed, 98 insertions(+), 13 deletions(-) create mode 100644 test/image/baselines/axes_breaks-matches.png create mode 100644 test/image/mocks/axes_breaks-matches.json diff --git a/src/plots/cartesian/constraints.js b/src/plots/cartesian/constraints.js index 713e0a0b730..f3ea4f8e10c 100644 --- a/src/plots/cartesian/constraints.js +++ b/src/plots/cartesian/constraints.js @@ -9,13 +9,12 @@ 'use strict'; var Lib = require('../../lib'); -var axisIds = require('./axis_ids'); -var id2name = axisIds.id2name; + +var autorange = require('./autorange'); +var id2name = require('./axis_ids').id2name; var layoutAttributes = require('./layout_attributes'); var scaleZoom = require('./scale_zoom'); -var autorange = require('./autorange'); -var makePadFn = autorange.makePadFn; -var concatExtremes = autorange.concatExtremes; +var setConvert = require('./set_convert'); var ALMOST_EQUAL = require('../../constants/numerical').ALMOST_EQUAL; var FROM_BL = require('../../constants/alignment').FROM_BL; @@ -30,7 +29,7 @@ exports.handleDefaults = function(layoutIn, layoutOut, opts) { // similar to _axisConstraintGroups, but only matching axes var matchGroups = layoutOut._axisMatchGroups = []; - var i, group, axId, axName, axIn, axOut; + var i, group, axId, axName, axIn, axOut, attr, val; for(i = 0; i < axIds.length; i++) { axName = id2name(axIds[i]); @@ -113,13 +112,22 @@ exports.handleDefaults = function(layoutIn, layoutOut, opts) { 'categoryarray' ]; var hasRange = false; + var hasDayOfWeekBreaks = false; + + function setAttrVal() { + val = axOut[attr]; + if(attr === 'rangebreaks') { + hasDayOfWeekBreaks = axOut._hasDayOfWeekBreaks; + } + } + for(i = 0; i < matchGroups.length; i++) { group = matchGroups[i]; // find 'matching' range attrs for(var j = 0; j < matchAttrs.length; j++) { - var attr = matchAttrs[j]; - var val = null; + attr = matchAttrs[j]; + val = null; var baseAx; for(axId in group) { axName = id2name(axId); @@ -132,13 +140,13 @@ exports.handleDefaults = function(layoutIn, layoutOut, opts) { baseAx = axOut; // top priority: explicit value in base axis if(attr in axIn) { - val = axOut[attr]; + setAttrVal(); break; } } if(val === null && attr in axIn) { // second priority: first explicit value in another axis - val = axOut[attr]; + setAttrVal(); } } @@ -159,8 +167,14 @@ exports.handleDefaults = function(layoutIn, layoutOut, opts) { // but we still might not have a value, which is fine. if(val !== null) { for(axId in group) { + axOut = layoutOut[id2name(axId)]; // TODO: do we also need to (deep) copy rangebreaks? - layoutOut[id2name(axId)][attr] = attr === 'range' ? val.slice() : val; + axOut[attr] = attr === 'range' ? val.slice() : val; + + if(attr === 'rangebreaks') { + axOut._hasDayOfWeekBreaks = hasDayOfWeekBreaks; + setConvert(axOut, layoutOut); + } } } } @@ -552,11 +566,11 @@ exports.enforce = function enforce(gd) { // *are* expanding to the full domain var outerMin = rangeCenter - halfRange * factor * 1.0001; var outerMax = rangeCenter + halfRange * factor * 1.0001; - var getPad = makePadFn(ax); + var getPad = autorange.makePadFn(ax); updateDomain(ax, factor); var m = Math.abs(ax._m); - var extremes = concatExtremes(gd, ax); + var extremes = autorange.concatExtremes(gd, ax); var minArray = extremes.min; var maxArray = extremes.max; var newVal; diff --git a/test/image/baselines/axes_breaks-matches.png b/test/image/baselines/axes_breaks-matches.png new file mode 100644 index 0000000000000000000000000000000000000000..7d5fb86addc0935412a4acda4c0f218c08e1b7fd GIT binary patch literal 22271 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 Date: Sat, 21 Nov 2020 12:55:04 -0500 Subject: [PATCH 10/10] remove TODO about rangebreaks - done :) --- src/plots/cartesian/constraints.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/plots/cartesian/constraints.js b/src/plots/cartesian/constraints.js index f3ea4f8e10c..85a4db0edf6 100644 --- a/src/plots/cartesian/constraints.js +++ b/src/plots/cartesian/constraints.js @@ -168,7 +168,6 @@ exports.handleDefaults = function(layoutIn, layoutOut, opts) { if(val !== null) { for(axId in group) { axOut = layoutOut[id2name(axId)]; - // TODO: do we also need to (deep) copy rangebreaks? axOut[attr] = attr === 'range' ? val.slice() : val; if(attr === 'rangebreaks') {

EFN5Dx}_U~Hv4*TD=j!1m^ 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 literal 47194 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 MQJi|2s!hay0abW)U;qFB diff --git a/test/image/baselines/matching-categories.png b/test/image/baselines/matching-categories.png index e5c616322756e7d407472e5167b743e33b2ea908..31d2a3c52c768dc8037026556b62a14d1b6b1e4c 100644 GIT binary patch literal 43440 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 S#g!27Icn`__1xlA;=ce0A3Qez literal 44170 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