text:
\section{Introduction}

Koebe's circle packing theorem \cite{K36} (see also \cite{NStFlour18,St05}) is a canonical and widely used method of drawing planar maps. Various geometric properties of the circle packing encode important probabilistic information of the map. For example, a landmark result of He and Schramm \cite{HeSc} states that a bounded degree one-ended triangulation is recurrent if and only if its circle packing has no accumulation points.

In this paper, we estimate the sizes of circles in the circle packing of a planar triangulation in terms of Cannon's \cite{Cannon} \emph{vertex extremal length}. In particular, we provide an if-and-only-if criterion for the property that all the circles in the packing are small. This property is fundamentally important and is believed to hold in all natural models of random planar maps. Proving it for a random simple triangulation on $n$ vertices is an important open problem (see \cite[Section 6]{LeGICM}).

We use our criterion together with estimates of \cite{GMS17b} to prove that the size of the largest circle in the circle packing of the discrete \emph{mating-of-trees} model of Duplantier, Gwynne, Miller and Sheffield \cite{DMS14,GMS17} goes to zero with high probability. When combined with the main theorem of \cite{GGJN19}, this shows that discrete analytic functions on the circle packing embedding of the mating-of-trees map approximate classical analytic functions on the domain of the circle packing.
See the discussion in Section \ref{sec:motivation}.

\subsection{Circle packing and vertex extremal length} \label{sec:CP-VEL}

A {\bf circle packing} of a simple connected planar map $G$ with vertex set $V$ is a collection $\mathcal P = \{C_v\}_{v \in V}$ of circles in the plane with disjoint interiors such that $C_v$ is tangent to $C_u$ if and only if $u$ and $v$ form an edge. We further require that for each vertex $v$, the cyclic order of the circles tangent to $C_v$ agrees with the cyclic order of the neighbors of $v$ in $G$. Koebe's \emph{circle packing theorem} mentioned above asserts that any simple connected planar map has a circle packing. Furthermore, when the map is a triangulation, the packing is unique up to M\"obius transformations. See \cite{NStFlour18} for details.

A {\bf triangulation with boundary} is a finite simple connected planar map in which all faces are triangles except for the outer face whose boundary is a simple cycle. Every triangulation with boundary has a circle packing in which the circles corresponding to vertices of the outer face are internally tangent to the unit circle $\partial \mathbb{D} = \{z : |z|=1\}$ and all other circles are contained in the unit disk $\mathbb{D} = \{z : |z| < 1\}$ \cite[Claim~4.9]{NStFlour18}. We call this a ``circle packing in $\mathbb{D}$.'' This packing is unique up to M\"obius transformations from $\mathbb{D}$ onto itself. A {\bf rooted triangulation with boundary} is a pair $(G, \rho)$ where $G$ is a triangulation with boundary and $\rho$ is a vertex in $V = V(G)$ that does not belong to the outer face. For any such $(G, \rho)$, denote by $\mathcal P_\rho = \{C_v\}_{v \in V}$ a circle packing of $G$ in $\mathbb{D}$ so that the circle $C_\rho$ is centered at the origin. By the aforementioned uniqueness, this circle packing is unique up to rotations. Therefore, the radius of each $C_v$, which we denote by rad$_\rho(v)$, is well-defined.

Our bounds use the notion of \emph{vertex extremal length}, introduced by Cannon \cite{Cannon}. Let $G=(V,E)$ be a graph. Given a function $m:V \to [0,\infty)$ and a finite path $\gamma$ in $G$, we define the {\bf length} of $\gamma$ according to $m$ as
$$ \textrm{len}_m(\gamma) = \sum_{v \in \gamma} m(v) \, .$$
Given a set of finite paths $\Gamma$ in $G$ we define
$$ \textrm{len}_m(\Gamma) = \inf _{\gamma \in \Gamma} \textrm{len}_m(\gamma) \, .$$
The {\bf vertex extremal length} of a set of finite paths $\Gamma$ in $G$ is now defined to be
$$ \textrm{VEL}(\Gamma) = \sup _{m:V\to [0,\infty)} { \textrm{len}_m(\Gamma)^2 \over {\rm area}(m) } \, ,$$
where ${\rm area}(m)= \sum_{v\in V} m(v)^2$.

Suppose that $(G,\rho)$ is a rooted triangulation with boundary. Given a vertex $v \neq \rho$, we denote by $\Gamma_{\rho,v}$ the set of paths in $G$ starting and ending at $v$ that have winding number $1$ around $\rho$. Also, for any vertex $v$ we denote by $\Gamma_{v}^\partial$ the set of paths in $G$ starting at $v$ and ending at a vertex of the outer face. Our first main result is the following.

\begin{thm} \label{thm:criterion} Let $(G,\rho)$ be a rooted triangulation with boundary and set $V = V(G)$. For any $v \in V$ distinct from $\rho$,
\begin{equation}  {\rm VEL}(\Gamma_{\rho,v}) \leq 4 \,{\rm rad}_\rho(v)^{-1}  \, .  \label{eq:winding}
\end{equation}
Furthermore, for any $v \in V$,
\begin{eqnarray}
 {\rm VEL}(\Gamma_{v}^\partial) \leq 1 +  \frac{1}{2} \log\left( \frac{1}{{\rm rad}_\rho(v)} \right)\, .
 \label{eq:boundary}
\end{eqnarray}
\end{thm}

The next theorem provides a bound in the other direction. For convenience we impose the convention that $\mathrm{VEL}(\Gamma_{\rho,\rho}) = 0$.

\begin{thm}
\label{thm:converse}
Let $(G,\rho)$ be a rooted triangulation with boundary and set $V = V(G)$. Let $\mathcal P_\rho = \{C_v\}_{v \in V}$ be a circle packing of $G$ in $\mathbb{D}$ such that $C_\rho$ is centered at the origin. If all the circles in $\mathcal P_\rho$ have radius at most $\varepsilon$, then
\begin{equation} \label{eq:converse}
\min_{v \in V} \Big ( {\rm VEL}(\Gamma_{\rho,v}) \vee {\rm VEL}(\Gamma_{v}^\partial) \Big ) \geq c \log(1/\varepsilon)
\end{equation}
for some universal constant $c > 0$.
\end{thm}

We say that a sequence $(G_n,\rho_n)$ of rooted triangulations with boundary has {\bf no macroscopic circles} if $\max _{v \in V(G_n)} \textrm{rad}_{\rho_n}(v) \to 0$ as $n\to\infty$.
Combining the two theorems above, we obtain an if-and-only-if criterion for the existence of macroscopic circles.

\begin{cor} Let $(G_n,\rho_n)$ be a sequence of rooted triangulations with boundary. Then  $(G_n,\rho_n)$ has no macroscopic circles if and only if
$$ \min_{v \in V(G_n)} \Big ( {\rm VEL}(\Gamma_{\rho_n,v}) \vee {\rm VEL}(\Gamma_{v}^\partial) \Big ) \underset{n\to\infty}{\longrightarrow} \infty \, .$$
\end{cor}

The vertex extremal length is an ``embedding-invariant'' quantity that encodes various geometric properties of embeddings in which each vertex corresponds to a cell whose squared diameter is comparable to its area. The relationship between squared diameter and area might be precise (as in the case of circle packing) or might hold only in a rough averaged sense. Either way, we can use vertex extremal length to infer that if one such embedding of a map does not possess macroscopic cells, then neither does the other. We carry out this procedure in Sections \ref{sec:intromating} and \ref{sec:matingproof} for the ``mating-of-trees'' random map model, which we now describe.

\subsection{Mating of trees}\label{sec:intromating}
The discrete ``mating-of-trees'' is a random map model constructed and studied by Duplantier, Gwynne, Miller and Sheffield \cite{DMS14,GMS17,GMS17b}. The model is parametrized by a real number $\gamma\in(0,2)$ and is constructed to be in the universality class of the $\gamma$-LQG surface. Given $\gamma \in (0,2)$ fixed, for each $\varepsilon > 0$ the model defines an infinite random planar triangulation $\mathcal G^\varepsilon$ on the vertex set $\varepsilon \mathbb{Z}$. In this paper we will not use the definition of $\mathcal G^\varepsilon$ directly, instead using properties of $\mathcal G^\varepsilon$ that have been proved in \cite{DMS14,GMS17,GMS17b}. Nevertheless, for the sake of completeness we now provide the definition of $\mathcal G^\varepsilon$ as it appears in \cite{GMS17b}.

Start with a standard two-sided planar Brownian motion which is at the origin at time $0$. Apply an appropriate linear transformation so that both coordinates of the resulting process $(L,R): \mathbb{R} \to \mathbb{R}^2$ are standard two-sided linear Brownian motions with correlation $\corr(L_t, R_t) = -\cos(\pi \gamma^2 / 4)$ for all $t \in \mathbb{R}$ except $t = 0$ (where $L_0 = R_0 = 0$). Given $\varepsilon > 0$, draw the planar map $\mathcal G^\varepsilon$ on the vertex set $\varepsilon \mathbb{Z}$ by first drawing an edge between each pair of consecutive vertices $x, x+\varepsilon$ so that the union of all these edges is a horizontal line. Next, for each pair of vertices $x_1,x_2 \in \varepsilon \mathbb{Z}$ such that $x_2 > x_1 + \varepsilon$ and
\begin{equation} \label{eq:GMS-Brownian}
\left( \inf_{t \in [x_1 - \varepsilon, x_1]} L_t \right) \vee \left( \inf_{t \in [x_2 - \varepsilon, x_2]} L_t \right) \leq \inf_{t \in [x_1, x_2 - \varepsilon]} L_t \, ,
\end{equation}
draw an edge between $x_1$ and $x_2$ in the space below the horizontal line. Finally, for each pair of vertices $x_1,x_2 \in \varepsilon \mathbb{Z}$ such that $x_2 > x_1 + \varepsilon$ and \eqref{eq:GMS-Brownian} holds with $R_t$ in place of $L_t$, draw an edge between $x_1$ and $x_2$ in the space above the horizontal line. Figure \ref{fig:mated-crt-map} shows a geometric interpretation of this process. The map $\mathcal G^\varepsilon$ is almost surely a triangulation, with each pair of vertices connected by at most two edges.

\begin{figure}
\centering
\includegraphics[width=0.8\textwidth]{fig-mated-crt-map}
\caption{To draw the map $\mathcal G^\varepsilon$, choose a constant $C$ large enough that the graphs of the Brownian motions $L_t$ and $C-R_t$ do not intersect for $t$ in a given interval. The left image shows the graphs of $L$ and $C - R$ on the interval $[0, 12\varepsilon]$. Each $x \in \varepsilon \mathbb{Z}$ corresponds to the vertical strip $\{(t,y) : t \in [x-\varepsilon, x],\, y \in [L_t, C - R_t] \}$, which is bounded by orange vertical lines. Given $x_1,x_2 \in \varepsilon \mathbb{Z}$ with $x_2 > x_1 + \varepsilon$, equation \eqref{eq:GMS-Brownian} or its analogue for $R_t$ is satisfied if and only if one can draw a horizontal line between the strips corresponding to $x_1$ and $x_2$ that stays below $L$ or above $C-R$, respectively. Such horizontal lines are drawn in green (including some whose endpoints are outside the pictured interval). The right image is a drawing of $\mathcal G^\varepsilon$ where the edges coming from green horizontal lines below $L$ are drawn in red and the edges coming from green horizontal lines above $C-R$ are drawn in blue. Images are from \cite{GMS17b} and are reproduced with permission.}
\label{fig:mated-crt-map}
\end{figure}

Many natural models of random planar maps can be encoded by a discrete version of the mating-of-trees map in which the Brownian motions $L,R$ are replaced by discrete time random walks. See \cite{GMS17b} for references. Thus the mating-of-trees map can be understood as a coarse-grained approximation of these models and can be used to derive new results about them. For instance, Gwynne and Miller \cite{GM18} have recently shown using this approach that the spectral dimension of the \emph{uniform infinite planar triangulation} (UIPT) is almost surely $2$.

A remarkable feature of the map $\mathcal G^\varepsilon$ is that it comes with an \emph{a priori embedding} in $\mathbb{C}$. See \cite[Theorem 1.9]{DMS14} and \cite[Proposition 2.2]{GMS17}. This embedding plays a central role in the precise formulation of our small-circles result, Theorem \ref{thm:nomacroscopic}, and in its proof. It has the following properties. To each vertex $v$ of $\mathcal G^\varepsilon$ there is an associated \emph{cell} $H_v^\varepsilon$, which is a compact connected subset of $\mathbb{C}$ such that the interiors of all cells are pairwise disjoint and vertices are adjacent in $\mathcal G^\varepsilon$ if and only if their corresponding cells share a non-trivial connected boundary arc. The union of all cells is the whole plane. We remark that $\mathcal G^\varepsilon$ has the same distribution for all $\varepsilon>0$ (by the scale-invariance of Brownian motion) but the a priori embedding is different. For a set $D \subset \mathbb{C}$ we write
$$ \mathcal V \mathcal G ^\varepsilon (D) = \{ v \in \mathcal V \mathcal G^\varepsilon : H_v^\varepsilon \cap D \neq \varnothing \} \, ,$$
where $\mathcal V \mathcal G^\varepsilon$ is the vertex set of $\mathcal G^\varepsilon$. The set $\mathcal V \mathcal G ^\varepsilon (D)$ is finite if $D$ is bounded.

Let $B(0,\rho)$ denote the disk $\{z: |z| < \rho\}$. In \cite{GMS17b} various estimates are proven concerning the sets $\mathcal V \mathcal G^\varepsilon(B(0,\rho))$ for $\rho < 1$. For convenience, we scale the a priori embedding by a factor of $2$ so that the set $\mathcal V \mathcal G^\varepsilon(\mathbb{D})$ in our normalization is the same as the set $\mathcal V \mathcal G^\varepsilon(B(0,1/2))$ in the language of \cite{GMS17b}.

Under this scaling, let $\mathcal G^\varepsilon(\mathbb{D})$ be the submap of $\mathcal G^\varepsilon$ whose vertex set is $\mathcal V \mathcal G ^\varepsilon (\mathbb{D})$ and whose edges are the edges of $\mathcal G^\varepsilon$ spanned by $\mathcal V \mathcal G ^\varepsilon (\mathbb{D})$. When $\varepsilon$ is small, with high probability the maximal cell diameter in $\mathcal G^\varepsilon(\mathbb{D})$ is at most $\varepsilon^q$ for some constant $q > 0$ \cite[Lemma 2.7]{GMS17b}. In the construction that follows, we assume that this event occurs.

We make minor modifications to turn $\mathcal G^\varepsilon(\mathbb{D})$ into a (simple) triangulation with boundary. These modifications are illustrated in Figure \ref{GMS-mods}. First, if $\mathcal G^\varepsilon(\mathbb{D})$ is not already $2$-connected, we observe that all the vertices $v$ for which $H_v^\varepsilon$ intersects the slightly smaller disk $\{z : |z| < 1 - \varepsilon^q \}$ are contained in the same block (maximal $2$-connected component) of $\mathcal G^\varepsilon(\mathbb{D})$. We restrict to this block, which we call $\mathcal G_0^\varepsilon$. This cuts off the ``dangling ends'' associated with repeated vertices in the boundary of the outer face of $\mathcal G^\varepsilon(\mathbb{D})$; the boundary of the new outer face is a simple cycle \cite[Proposition 4.2.5]{D17} whose vertices and edges are all part of the old boundary.

\begin{figure}
\centering
\includegraphics[width=0.7\textwidth]{GMS-mods}
\caption{Modification of $\mathcal G^\varepsilon(\mathbb{D})$ into $\mathcal G_2^\varepsilon$. Several cells $H_v^\varepsilon$ are shown along with a portion of the unit circle (thick black curve). The transition from $\mathcal G^\varepsilon(\mathbb{D})$ to $\mathcal G_0^\varepsilon$ deletes the vertices whose cells are colored in red. The transition from $\mathcal G_0^\varepsilon$ to $\mathcal G_1^\varepsilon$ adds the vertex whose cell is colored in green. Finally, the transition from $\mathcal G_1^\varepsilon$ to $\mathcal G_2^\varepsilon$ deletes the vertices whose cells are colored in blue and absorbs the blue area either into the cell above or into the cell below.}
\label{GMS-mods}
\end{figure}

The map $\mathcal G_0^\varepsilon$ might have inner faces which are not triangles because it is possible for a cycle in $\mathcal G_0^\varepsilon$ to enclose vertices in $\mathcal V \mathcal G^\varepsilon \setminus \mathcal V \mathcal G_0^\varepsilon$. In this case we simply add to the map all of these enclosed vertices and their incident edges and denote the resulting map by $\mathcal G_1^\varepsilon$. The boundary of the outer face is unchanged by this procedure.

Now the inner faces of $\mathcal G_1^\varepsilon$ are all triangles, but the map is not necessarily simple. As described above, between any given pair of vertices there might be two edges (but no more than two). At each occurrence of such parallel edges we collapse them to a single edge and erase all the vertices and edges between them. Furthermore, in the embedding we assign the space of the erased cells arbitrarily to one of the two surrounding cells corresponding to the vertices of the double edge. This guarantees simplicity. We denote this map by $\mathcal G_2^\varepsilon$ and observe that it is a triangulation with boundary according to the definition in Section \ref{sec:CP-VEL}. Indeed, $\mathcal G_2^\varepsilon$ is a simple submap of $\mathcal G_1^\varepsilon$ with the same outer face. Lastly, the vertex whose corresponding cell contains the origin (or any one of the vertices with this property, in case the origin is on a cell boundary) is declared to be the root and denoted by $\rho$. Since $\rho$ is not a vertex of the outer face, we have that $(\mathcal G_2^\varepsilon, \rho)$ is a rooted triangulation with boundary.

As in Section \ref{sec:CP-VEL}, let $\mathcal P^\varepsilon_\rho = \{C_v\}_{v \in \mathcal V \mathcal G_2^\varepsilon}$ be a circle packing of $\mathcal G_2^\varepsilon$ in $\mathbb{D}$ such that $C_\rho$ is centered at the origin. This packing is unique up to rotations. Denote the radius of each $C_v$ by ${\rm rad}^\varepsilon_\rho(v)$. The following theorem bounds the maximum radius in $\mathcal P_\rho^\varepsilon$ with high probability. It implies that for a sequence $\varepsilon_n$ tending to $0$ sufficiently fast, the sequence of random rooted triangulations with boundary $(\mathcal G_2^{\varepsilon_n}, \rho_n)$ almost surely has no macroscopic circles.

\begin{thm} \label{thm:nomacroscopic} There exist constants $C,c>0$, depending only on the parameter $\gamma \in (0,2)$, such that with probability at least $1-\varepsilon^c$,
$$ \max_{v\in \mathcal V \mathcal G_2^\varepsilon}\,\, {\rm rad}_\rho^\varepsilon (v) \leq {C \over \log(1/\varepsilon)} \, .$$
\end{thm}

Note that the low probability $\varepsilon^c$ encompasses both the event that the modification of $\mathcal G^\varepsilon(\mathbb{D})$ into $\mathcal G_2^\varepsilon$ fails due to the presence of a very large cell, and the event that the modification succeeds but the circle packing has a very large circle.

\subsection{Discrete complex analysis on random planar maps}\label{sec:motivation}

Discrete complex analysis has been pivotal in the study of statistical physics on two-dimensional lattices \cite{SmirnovPerc,SmirnovIsing,ChelkakSmirnov2011,ChelkakSmirnovIsing,SmirnovICM}. Recently, statistical physics on random planar maps has drawn a great deal of attention due to the conjectured KPZ correspondence, see \cite{Garban13,DS11}. Random planar maps are combinatorial objects and do not come equipped with a canonical embedding in the plane. Thus, a major challenge is to find an embedding on which discrete complex analysis can be performed. The motivation of the current paper and its companion \cite{GGJN19} is to address this challenge. Indeed, the combination of Theorem \ref{thm:nomacroscopic} and \cite[Theorem 1.1]{GGJN19} enables one to perform discrete complex analysis on the circle packing embedding of the mating-of-trees random map model. We provide a brief explanation here and refer the reader to \cite{GGJN19} for further details.

A natural candidate for the embedding of a generic planar map is the \emph{orthodiagonal} representation. An \emph{orthodiagonal map} is a plane graph having quadrilateral faces with orthogonal diagonals. It turns out that any simple 3-connected finite planar map, in particular any simple triangulation, can be represented by an orthodiagonal map via the circle packing theorem, see \cite[Section 2]{GGJN19}. Furthermore, Duffin \cite{D68} showed that orthodiagonal maps admit a very natural form of discrete analyticity: a complex-valued function $f$ is said to be {\bf discrete analytic} if for every inner quadrilateral $[v_1,w_1,v_2,w_2]$ of the map,
 \[
\frac{f(v_2) - f(v_1)}{v_2 - v_1} = \frac{f(w_2) - f(w_1)}{w_2 - w_1} \, .
\]
With this definition it can be shown that discrete contour integrals of discrete analytic functions vanish, and that the real part of a discrete analytic function is discrete harmonic with respect to positive real edge weights induced by the map, mirroring classical complex analysis theory. It is a natural and highly applicable question to ask whether such functions are close to continuous holomorphic functions---the answer is positive.

Indeed, following the work of \cite{D99,S13,W15}, in \cite{GGJN19} we prove a general result regarding the convergence of discrete harmonic functions on orthodiagonal maps to their continuous counterparts.\footnote{We emphasize that the discrete harmonic functions in \cite{GGJN19}, just as in \cite{D99,S13,W15}, are with respect to natural edge weights determined by the orthodiagonal map and not with respect to unit weights. See equation (1) in \cite[Section 1.1]{GGJN19}.} Our main contribution is to drop several local and global regularity conditions, such as bounded vertex degrees, present in the previous results \cite{D99,S13,W15}. These conditions have prevented such convergence results from applying to random planar maps.
By contrast, our convergence statement \cite[Theorem 1.1]{GGJN19} holds for any random map model that has an orthodiagonal representation with maximal edge length going to $0$. Theorem \ref{thm:nomacroscopic} shows that the circle packing in the unit disk $\mathbb{D}$ of the mating-of-trees random triangulation $\mathcal G_2^\varepsilon$ induces such an orthodiagonal representation. For further details, see \cite[Corollary 2.2]{GGJN19}. It follows that discrete harmonic and analytic functions on the circle packing embedding of $\mathcal G_2^\varepsilon$ in $\mathbb{D}$ converge to their continuous counterparts as $\varepsilon$ tends to $0$.

\section{Proofs} \label{sec:proofs}

\subsection{Proof of Theorem \ref{thm:criterion}}

We begin by proving \eqref{eq:winding}. By applying a rotation we may assume that the center of the circle $C_v$ lies on the positive $x$-axis, and we denote by $t_2 > t_1 > 0$ the two intersection points of $C_v$ with the $x$-axis. We have that $t_2 - t_1 = 2{\rm rad}_\rho(v)$. For each $t \in [t_1,t_2]$ let $C_t$ be the circle of radius $t$ around the origin (this is \emph{not} an element of the circle packing $\mathcal P_\rho$). Let $\gamma_t$ denote the finite simple path in $G$ obtained from $C_t$ by starting at the point $(t,0)$ and the vertex $v$, then traversing $C_t$ counterclockwise concatenating to $\gamma_t$ the vertex of $G$ corresponding to any new circle of $\mathcal P_\rho$ that we encounter, until we visit $C_v$ in the last step. See Figure \ref{fig:circlepath}. Note that for almost every $t \in [t_1,t_2]$ the circle $C_t$ does not intersect any tangency point of $\mathcal P_\rho$, so $\gamma_t$ is well defined for this set of $t$'s. Since we start and end at $v$ and wind around the origin a single time, we have that $\gamma_t \in \Gamma_{\rho,v}$ for almost every $t\in[t_1,t_2]$.

Now, given $m:V \to [0,\infty)$ we have that
$$ \int_{t_1}^{t_2} {\rm len}_m(\gamma_t) dt = \sum_{u\in V} m(u) \int _{t_1}^{t_2} {\bf 1}_{\{u \in \gamma_t\}}dt \, .$$
The vertices $u$ that contribute to the sum are those for which the interior of $C_u$ intersects the annulus $A = \{z : t_1 \leq |z| \leq t_2\}$. Given such a circle $C_u$, label its closest point to the origin by $r_1 e^{i \varphi}$ and its farthest point from the origin by $r_2 e^{i \varphi}$ (the angles are the same). Then
\[
\int_{t_1}^{t_2} {\bf 1}_{\{u \in \gamma_t\}}dt = (r_2 \wedge t_2) - (r_1 \vee t_1) = 2{\rm rad}'_\rho(u)
\]
where ${\rm rad}'_\rho(u)$ is the radius of the circle $C'_u$ for which the line segment between $(r_1 \vee t_1)e^{i \varphi}$ and $(r_2 \wedge t_2)e^{i \varphi}$ is a diameter. One such circle $C'_u$ is illustrated in Figure \ref{fig:circlepath}. The circles $C'_u$ are all inside the annulus $A$, and they are internally disjoint because each $C'_u$ is contained inside $C_u$. Hence
\[
\sum_u ({\rm rad}'_\rho(u))^2 \leq t_2^2 - t_1^2 \leq 2(t_2 - t_1)
\]
and, by Cauchy-Schwarz,
\[
\begin{split}
\int_{t_1}^{t_2} {\rm len}_m(\gamma_t) dt = 2 \sum_u m(u) {\rm rad}'_\rho(u) &\leq 2 \left( {\rm area}(m) \sum_u ({\rm rad}'_\rho(u))^2 \right)^{1/2} \\
&\leq 2\Big( 2 {\rm area}(m) (t_2 - t_1) \Big)^{1/2}\,.
\end{split}
\]

We deduce that there must exist $t\in(t_1,t_2)$ such that
$$ {\rm len}_m(\gamma_t) \leq { 2 \sqrt{2{\rm area}(m)}  \over \sqrt{t_2-t_1} } = 2 \sqrt{{\rm area}(m) \over {\rm rad}_\rho(v)}  \, .$$
Plugging this into the definition of VEL$(\Gamma_{\rho,v})$ concludes the proof of \eqref{eq:winding}.

\begin{figure}
\centering
\begin{subfigure}{0.45\textwidth}
   \centering
   \includegraphics[width=1\textwidth]{circlepath}
   \caption{Construction of the path $\gamma_t$. The red annulus is $A = \{z : t_1 \leq |z| \leq t_2\}$ and the blue dashed circle is $C_t$. The circles corresponding to vertices in $\gamma_t$ are shaded in gray. Additionally, one of the circles $C'_u$ is drawn in green.}
   \label{fig:circlepath}
\end{subfigure}
\quad
\begin{subfigure}{0.45\textwidth}
   \centering
   \includegraphics[width=1\textwidth]{diskpath}
   \caption{Construction of the path $\gamma_\theta$. The blue dashed line is $\ell_\theta$ and the circles corresponding to vertices in $\gamma_\theta$ are shaded in gray. The solid red segments are the tangent lines from the origin to a circle $C_u$ which is shaded in red.}
   \label{fig:diskpath}
\end{subfigure}
\caption{Illustrations of various parts of the proof of Theoeem \ref{thm:criterion}.}
\label{fig:VEL-paths}
\end{figure}

We now prove \eqref{eq:boundary}. If $v$ is a vertex of the outer face of $G$ then ${\rm VEL}(\Gamma_v^\partial) = 1$. In all other cases we will show that
\begin{equation} \label{eq:rad_vv}
{\rm VEL}(\Gamma_{v}^\partial) \leq 1 +  \frac{1}{2} \log\left( \frac{1}{{\rm rad}_v(v)} \right)\, .
\end{equation}
This implies \eqref{eq:boundary} because ${\rm rad}_\rho(v) < {\rm rad}_v(v)$ whenever $\rho \neq v$, as we now explain. To get from the packing $\mathcal P_v$ to $\mathcal P_\rho$, one applies a M\"{o}bius transformation of the form $z \mapsto e^{i\theta} (z + w)/(1 + \overline{w}z)$ for some $0 < |w| < 1$. This transforms a circle of radius $r < 1$ centered at the origin into a circle of radius $r(1 - |w|^2)/(1 - |w|^2 r^2) < r$.

We consider the packing $\mathcal P_v = \{C_u\}_{u \in V}$, where $C_v$ is centered at the origin. For $\theta\in (0,2\pi)$ let $\ell_\theta$ be the straight line in the plane of angle $\theta$ starting from the origin and ending at $\partial \mathbb{D}$. Let $\gamma_\theta$ be the path in $G$ obtained by taking the circles of $\mathcal P_v$ that $\ell_\theta$ intersects according to the order in which they are intersected. See Figure \ref{fig:diskpath}. For almost every $\theta$ this is a finite simple path in $G$ which starts at $v$ and ends in one of the vertices of the outer face. As before, given any $m:V\to [0,\infty)$ we have that
$$ \int_{0}^{2\pi} {\rm len}_m(\gamma_\theta)d\theta = \sum_{u} m(u) \int_{0}^{2\pi} {\bf 1}_{\{u \in \gamma_\theta\}}d\theta \, .$$
For any $u\neq v$, the Lebesgue measure of $\theta$'s for which $u \in \gamma_\theta$ is precisely the angle between the two tangents to $C_u$ emanating from the origin, as shown in Figure \ref{fig:diskpath}. If $\alpha$ is half that angle, then $\sin(\alpha)={\rm rad}_v(u)/d(u,v)$ where $d(u,v)$ is the Euclidean distance between the center of $C_u$ and the origin. It is clear that $\alpha \in (0,\pi/2)$ so that $\alpha \leq {\pi \over 2}\sin(\alpha)$, and we obtain
\[
\begin{split}
\int_{0}^{2\pi} {\rm len}_m(\gamma_\theta)d\theta &\leq 2\pi m(v) + \pi \sum_{u\neq v} \frac{m(u) {\rm rad}_v(u)}{d(u,v)} \\
&\leq 2\pi \sqrt{{\rm area}(m)} \left( 1 + \frac{1}{4}\sum_{u \neq v} \frac{({\rm rad}_v(u))^2}{d(u,v)^2} \right)^{1/2}
\end{split}
\]
where the last inequality is Cauchy-Schwarz.

To bound the sum, let $D_u$ denote the interior of $C_u$. The function $f(x,y) = 1/(x^2 + y^2)$ on $\mathbb{R}^2 \setminus \{0\}$ is subharmonic (this can be checked by computing the Laplacian) and so its value at the center of $C_u$ is less than its average value on $D_u$. In other words,
\[
\frac{1}{d(u,v)^2} \leq \frac{1}{\pi \cdot ({\rm rad}_v(u))^2} \iint_{D_u} \frac{1}{x^2 + y^2} \, dx\,dy \,.
\]
The disks $D_u$ for $u \neq v$ are disjoint and all contained in the annulus $A' = \{z : {\rm rad}_v(v) \leq |z| \leq 1 \}$. Hence
\[
\begin{split}
\sum_{u \neq v} \frac{({\rm rad}_v(u))^2}{d(u,v)^2} &\leq \sum_{u \neq v} \frac{1}{\pi} \iint_{D_u} \frac{1}{x^2 + y^2} \, dx\,dy \leq \frac{1}{\pi} \iint_{A'} \frac{1}{x^2 + y^2} \, dx\,dy \\
&= 2 \int_{{\rm rad}_v(v)}^1 \frac{1}{r} \, dr = 2 \log\left(\frac{1}{{\rm rad}_v(v)} \right) \, .
\end{split}
\]

We conclude that
\[
\frac{1}{2\pi} \int_{0}^{2\pi} {\rm len}_m(\gamma_\theta)d\theta \leq \sqrt{{\rm area}(m)} \sqrt{1 + \frac{1}{2} \log\left(\frac{1}{{\rm rad}_v(v)}\right) }
\]
so there is $\theta \in (0,2\pi)$ such that ${\rm len}_m(\gamma_\theta)$ has the same bound, proving \eqref{eq:rad_vv}. \qed

\subsection{Proof of Theorem \ref{thm:converse}} \label{sec:converse-proof}
Because all the paths in $\Gamma_{\rho,v}$ and $\Gamma_v^\partial$ pass through $v$, the left side of \eqref{eq:converse} is at least $1$ and we may assume that $\varepsilon$ is sufficiently small.

For $z\in \mathbb{D}$ and $r_2>r_1>0$, we denote by $A_z(r_1,r_2)$ the annulus $\{w: r_1 < |z-w| < r_2\}$. Set $K = \lfloor \log_2(1/5\varepsilon) \rfloor - 2$. For $0 \leq k \leq K$, let $r_k = 2^k (5\varepsilon)$, so that $r_0 = 5\varepsilon$ and $r_K \in [1/8, 1/4]$. Given $v \in V$, let $c_v$ be the center of the circle $C_v \in \mathcal P_\rho$ and let $B_k$ be the set of vertices $u$ for which $C_u \subset A_{c_v}(r_{k-1},r_{k})$. We define $m: V \to [0,\infty)$ by
\[
m(u) = \begin{cases} {\rm rad}_\rho(u)/r_k & \text{if } u\in B_k \text{ for some } 1 \leq k \leq K \\
0 & \text{otherwise}. \end{cases}
\]

For each $1\le k \le K$ we have
\[
\sum_{u\in B_k} m(u)^2 = \frac{1}{\pi r_k^2} \sum_{u\in B_k} \pi ({\rm rad}_\rho(u))^2 \le 1 \, ,
\]
hence ${\rm area}(m) \leq K$.

If $|c_v| \geq 1/2$ then every path $\gamma \in \Gamma_{\rho,v}$ must visit a vertex $v'$ with $|c_{v'} - c_v| \geq 1/4 \geq r_K$. If $|c_v| \leq 1/2$ then the same property holds for every path $\gamma \in \Gamma_v^\partial$.

Suppose $\gamma$ is a path in $G$ that starts at $v$ and visits a vertex $v'$ such that $|c_{v'} - c_v| \geq r_K$. The packing $\mathcal P_\rho$ induces an embedding of $G$ in the plane where each vertex $u$ is drawn at $c_u$ and the edges $(u,u')$ are drawn as the straight lines $c_u c_{u'}$. Under this embedding, the path $\gamma$ becomes a piecewise linear curve in $\mathbb{D}$ that crosses from the inside to the outside of each annulus $A_{c_v}(r_{k-1},r_k)$. We abuse notation by referring to this curve also as $\gamma$. If $\gamma$ goes through a vertex $u\in B_k$, then the Euclidean length of $\gamma \cap C_u$ is $2 {\rm rad}_\rho(u)$ while the contribution of $u$ to $\mathrm{len}_m(\gamma)$ is ${\rm rad}_\rho(u)/r_k$, thus the ratio between them is $1/2r_k$. As all the circles in $\mathcal P_\rho$ have radius at most $\varepsilon$, any circle $C_u$ whose interior intersects $A_{c_v}(r_{k-1} + 2\varepsilon, r_k - 2\varepsilon)$ must be contained entirely in $A_{c_v}(r_{k-1},r_k)$. It follows that the contribution of $B_k$ to $\mathrm{len}_m(\gamma)$ is at least
\[
[(r_k - 2\varepsilon) - (r_{k-1} + 2\varepsilon)] / 2r_k \geq 1/20 \, .
\]
Therefore $\mathrm{len}_m(\gamma) \geq K/20$ and so $(\mathrm{len}_m(\gamma))^2 / {\rm area}(m) \geq K/400$.

Hence, we have that either ${\rm VEL}(\Gamma_{\rho,v})\ge K/400$ or ${\rm VEL}(\Gamma_{v}^\partial) \ge K/400$. \qed

\subsection{Proof of Theorem \ref{thm:nomacroscopic}} \label{sec:matingproof}
We will adapt the argument used to prove Theorem \ref{thm:converse}. In that argument, the smallness of all the circles led to a lower bound on vertex extremal length. In the present setting, results from \cite{GMS17b} show that with high probability in the a priori embedding of the mating-of-trees map, all of the cells are small and the sum of the squared diameters of the cells in a sufficiently nice region is proportional to the area of the region. We use this information to repeat the argument from Section \ref{sec:converse-proof} and get a very similar VEL lower bound, which plugs into Theorem \ref{thm:criterion} to complete the proof.

From the definition of the a priori embedding, it is immediate that given any path $(v_0,v_1,\ldots,v_k)$ in $\mathcal G^\varepsilon$ there is a continuous curve in the plane that passes in order through the cells $H_{v_j}^\varepsilon$. The following lemma shows that one can also translate line segments in the plane into paths in $\mathcal G^\varepsilon$.

\begin{lemma} \label{lem:pathtranslate}
The a priori embedding $\{H_v^\varepsilon\}_{v \in \mathcal V \mathcal G^\varepsilon}$ almost surely has the following property. Given any line segment $z_1 z_2$ in the plane, let $v_1, v_2 \in \mathcal V \mathcal G^\varepsilon$ satisfy $z_1 \in H_{v_1}^\varepsilon$ and $z_2 \in H_{v_2}^\varepsilon$. Then there is a path in $\mathcal G^\varepsilon$ from $v_1$ to $v_2$ whose vertices are all in the set $\mathcal V \mathcal G^\varepsilon(z_1 z_2)$.
\end{lemma}

\begin{proof}
This statement is proved in \cite{GMS17} (see the section ``Connectivity along lines'' in the proof of Proposition 3.1) for horizontal and vertical lines. The proof extends without change to the case of lines at any angle.
\end{proof}

We now quote two results from \cite{GMS17b}. For each $v\in \mathcal V \mathcal G^\varepsilon$ we write $\diam(H_v^\varepsilon)$ for the diameter of the cell $H_v^\varepsilon$ associated with $v$, as described in Section \ref{sec:intromating}.

\begin{thm}\label{thm:GMSmaxdiam} There exist constants $c,q>0$ (depending only on the parameter $\gamma\in(0,2)$ discussed in Section \ref{sec:intromating}) such that for $\varepsilon$ sufficiently small,
$$ \Prob \Big ( \diam(H_v^\varepsilon) \leq \varepsilon^q \quad \forall \,\, v \in \mathcal V \mathcal G_1^\varepsilon \Big ) \geq 1-\varepsilon^c \, .$$
\end{thm}
\begin{proof}
Lemma 2.7 of \cite{GMS17b} gives the same estimate for all $v \in \mathcal V \mathcal G^\varepsilon(B(0,r))$ for some fixed $r > 1$ (recalling the renormalization by a factor of $2$ in Section \ref{sec:intromating}). On that event, every $v \in \mathcal V \mathcal G_0^\varepsilon$ has $\diam(H_v^\varepsilon) \leq \varepsilon^q$ and $H_v^\varepsilon \subset B(0, 1+\varepsilon^q)$. If $w \in \mathcal V \mathcal G_1^\varepsilon \setminus \mathcal V \mathcal G_0^\varepsilon$, then $w$ is inside a cycle in $\mathcal G^\varepsilon$ of vertices in $\mathcal V \mathcal G_0^\varepsilon$, thus the connected component of $w$ in the subgraph of $\mathcal G^\varepsilon$ induced by $\mathcal V \mathcal G^\varepsilon \setminus \mathcal V \mathcal G_0^\varepsilon$ is finite. On the other hand, by Lemma \ref{lem:pathtranslate}, a single connected component of this subgraph contains all the vertices $u \in \mathcal V \mathcal G^\varepsilon$ such that $H_u^\varepsilon$ intersects the complement of $B(0, 1+\varepsilon^q)$. Indeed, any two such cells $H_u^\varepsilon, H_{u'}^\varepsilon$ can be joined by a piecewise linear curve that avoids the disk $B(0, 1+\varepsilon^q)$. It follows that $H_w^\varepsilon \subset B(0, 1+\varepsilon^q) \subset B(0,r)$ and so the diameter estimate also holds for $H_w^\varepsilon$.
\end{proof}

To state the second result from \cite{GMS17b}, we recall the notation $A_z(r_1,r_2)$ from Section \ref{sec:converse-proof}.
For any open set $D$ we write ${\rm area}(D)$ for its Lebesgue measure. Let $q>0$ be the constant from Theorem \ref{thm:GMSmaxdiam} and set $\mathbb{D}' = \{z : |z|\leq 1+ \varepsilon^q\}$. Note that on the event of Theorem \ref{thm:GMSmaxdiam}, every $v \in \mathcal V \mathcal G_1 ^\varepsilon$ has $H_v^\varepsilon \subset \mathbb{D}'$.

\begin{thm}\label{thm:GMS} There exist constants $A,c>0$ (depending only on $\gamma$) such that when $\varepsilon$ is sufficiently small, for any $|z|\leq 1-\varepsilon^c$ and $r_1,r_2$ satisfying $1\geq r_2 \geq r_1 + \varepsilon^c$ we have that
$$ \Prob \Big ( \sum_{v \in \mathcal V \mathcal G ^\varepsilon \,:\, H_v^\varepsilon \subset A_z(r_1,r_2) \cap \mathbb{D}'} \diam^2(H_v^\varepsilon) \leq A \cdot {\rm area}\big ( A_z(r_1,r_2) \cap \mathbb{D}'\big) \Big ) \geq 1-\varepsilon^c \, .$$
\end{thm}
\begin{proof}
Follows directly from Proposition 2.9 of \cite{GMS17b} by taking $D=A_z(r_1,r_2) \cap \mathbb{D}'$, noting that ${\rm area}(D)$ is at least of order $\varepsilon^c$ under our assumptions on $z,r_1,r_2$.
\end{proof}

We now begin the proof of Theorem \ref{thm:nomacroscopic}. We will show that when $\varepsilon$ is sufficiently small, with probability at least $1-\varepsilon^c$ the map $\mathcal G_1^\varepsilon$ satisfies
\begin{align}{\rm VEL}(\Gamma_{\rho,v}) &\geq c \log(1/\varepsilon) \quad {\rm for\ all} \quad v \in \mathcal V \mathcal G_1^\varepsilon \cap \mathcal V \mathcal G^\varepsilon ( \{ |z| \geq 1/2 \} ) \label{nomacro.goal} \\
{\rm VEL}(\Gamma_{v}^\partial) &\geq c \log(1/\varepsilon) \quad {\rm for\ all} \quad v \in \mathcal V \mathcal G^\varepsilon ( \{ |z| \leq 1/2\} )\, , \label{nomacro.goal2} \end{align}
for some fixed constant $c>0$. By our construction in Section \ref{sec:intromating} we have that $\mathcal G_2^\varepsilon$ is a submap of $\mathcal G_1^\varepsilon$, hence \eqref{nomacro.goal} for $\mathcal G_1^\varepsilon$ implies the same bound for $\mathcal G_2^\varepsilon$. Furthermore, since both maps have the same outer face, \eqref{nomacro.goal2} for $\mathcal G_1^\varepsilon$ again implies the same estimate for $\mathcal G_2^\varepsilon$. Thus, by Theorem \ref{thm:criterion}, these two assertions conclude the proof and it suffices to prove \eqref{nomacro.goal} and \eqref{nomacro.goal2} for $\mathcal G_1^\varepsilon$.

In fact, we prove only \eqref{nomacro.goal}; the proof of \eqref{nomacro.goal2} is very similar. Let $A,c,q>0$ be the constants from Theorems \ref{thm:GMSmaxdiam} and \ref{thm:GMS}. By Theorem \ref{thm:GMSmaxdiam}, with probability at least $1-\varepsilon^c$ we have that $\diam(H_v^\varepsilon) \leq \varepsilon^q$ for all $v \in \mathcal V \mathcal G_1^\varepsilon$. Let us assume this event holds.

Set $c'=\min(c,q)/4$ and $K = \lfloor c' \log_2 (1/\varepsilon) \rfloor - 3$. For $0 \leq k \leq K$, set $r_k = 2^{k+1} \varepsilon^{c'}$. Note that $r_0 = 2\varepsilon^{c'}$ and that $r_K \in [1/8,1/4]$. We would like to draw concentric circles of radius $r_0,\ldots,r_K$ around each cell $H_v^\varepsilon$, as in the proof of Theorem \ref{thm:converse}, but since we will need to use Theorem \ref{thm:GMS} in each annulus we must take care that the total number of annuli is less than $\varepsilon^{-c}$. For this reason, we specify the center points of the circles using the following procedure.

Denote $\mathbb{D}_\varepsilon = \{ z : |z|\leq 1-\varepsilon^c\}$. We find points $z_1, \ldots, z_L$ in $\mathbb{D}_\varepsilon$ such that
\begin{enumerate}
  \item Every cell corresponding to a vertex $v\in \mathcal V \mathcal G_1^\varepsilon$ is contained in $B(z_i,r_0)$ for some $1 \leq i \leq L$, and
  \item $L \leq 16\varepsilon ^{-c/2}$.
\end{enumerate}
Indeed, we take $\{z_1, \ldots, z_{L}\}$ to be an $\varepsilon^{c'}/2$-net in $\mathbb{D}_\varepsilon$, that is, for any $z\in \mathbb{D}_\varepsilon$ there is some $1 \leq i\leq L$ such that $|z - z_i| \leq \varepsilon^{c'}/2$ and $B(z_i,\varepsilon^{c'}/4) \cap B(z_j,\varepsilon^{c'}/4) = \varnothing$ for any $i\neq j$. Such a set of points can be easily obtained greedily: at each stage, if there is a $z\in \mathbb{D}_\varepsilon$ such that $B(z,\varepsilon^{c'}/4) \cap B(z_i,\varepsilon^{c'}/4) = \varnothing$ for all $i$, then we add $z$ to the current set of $z_i$'s. Since the added disks are disjoint, this process must end after at most $16 \varepsilon^{-2c'}$ steps, so by our choice of $c'$ we have that $L \leq 16\varepsilon^{-c/2}$. Due to the maximality of this set of points, we obtain that $\mathbb{D}_\varepsilon \subset \cup_{1 \leq i \leq L} B(z_i,\varepsilon^{c'}/2)$ and since $c' < \min(c,q)$ we have that $\mathbb{D}' \subset \cup_{1 \leq i \leq L} B(z_i,\varepsilon^{c'})$. Lastly, for all $v\in \mathcal V \mathcal G_1^\varepsilon$, since $\diam(H_v^\varepsilon) \leq \varepsilon^q$ we can find $i$ such that $H_v^\varepsilon \subset B(z_i,2\varepsilon^{c'})$.  We conclude that both (1) and (2) hold for the point set $\{z_1, \ldots, z_L\}$.

We now apply Theorem \ref{thm:GMS} $LK$ times and obtain that with probability at least $1 - LK \varepsilon^c$,
\begin{equation}\label{eq:forvelbound} \sum_{v \in \mathcal V \mathcal G ^\varepsilon \,:\, H_v^\varepsilon \subset A_{z_i}(r_{k-1},r_k) \cap \mathbb{D}'} \diam^2(H_v^\varepsilon) \leq A \cdot \pi r_k^2  \qquad 1 \leq i \leq L,\ 1 \leq k \leq K \, .\end{equation}

Assume that \eqref{eq:forvelbound} holds and let $v \in \mathcal V \mathcal G_1^\varepsilon \cap \mathcal V \mathcal G^\varepsilon ( \{ |z| \geq 1/2 \} )$. Then $H_v^\varepsilon \subset B(z_i,r_0)$ for some $1 \leq i \leq L$ by the construction above. Let $B_k$ be the set of vertices $u \in \mathcal V \mathcal G_1^\varepsilon$ for which $H_u^\varepsilon \subset A_{z_i}(r_{k-1},r_k)$. We define $m: \mathcal V \mathcal G_1^\varepsilon \to [0,\infty)$ by
\[
m(u) = \begin{cases} \diam(H_u^\varepsilon)/r_k & \text{if } u \in B_k \text{ for some } 1 \leq k \leq K \\
0 & \text{otherwise}. \end{cases}
\]
Due to \eqref{eq:forvelbound}, the contribution to ${\rm area}(m)$ from each $B_k$ is at most $\pi A$, hence ${\rm area}(m) \leq \pi AK = O(\log(1/\varepsilon))$.

Let $\gamma$ be any path in $\mathcal G_1^\varepsilon$ from $v$ to $v$ that has winding number $1$ around $\rho$. If we write $\gamma = (v_0,v_1,\ldots,v_m)$ with $v_0 = v_m = v$, then we may draw a closed curve in the plane that starts and ends at a point $w \in H_v^\varepsilon$ and passes in order through the cells $H_{v_j}^\varepsilon$. We now argue that this curve must cross each of the annuli $A_{z_i}(r_{k-1},r_k)$ for $1\leq k \leq K$. The cell $H_\rho^\varepsilon$ either contains the origin or is within distance $2\varepsilon^q$ of the origin in case the cell containing the origin was collapsed during the transition from $\mathcal G_1^\varepsilon$ to $\mathcal G_2^\varepsilon$. Thus we may choose $z \in H_\rho^\varepsilon$ with $|z| \leq 2\varepsilon^q$. Let $w' = -2w/|w|$ be on the opposite side of the origin from $w$ with $|w'| = 2$. We use Lemma \ref{lem:pathtranslate} to convert the straight line $zw'$ into a path in $\mathcal G^\varepsilon$ from $\rho$ to $\mathcal V \mathcal G^\varepsilon \setminus \mathcal V \mathcal G_1^\varepsilon$. Since $\gamma$ has winding number $1$ around $\rho$, it separates $\rho$ from $\mathcal V \mathcal G^\varepsilon \setminus \mathcal V \mathcal G_1^\varepsilon$. (Here we used the property that every vertex in $\mathcal V \mathcal G^\varepsilon$ which is enclosed by a cycle in $\mathcal G_1^\varepsilon$ must be an element of $\mathcal V \mathcal G_1^\varepsilon$.) Therefore, this new path intersects $\gamma$ at some $v_j$ and it follows that the line $zw'$ passes through $H_{v_j}^\varepsilon$. Since $|w| \geq 1/2 - \varepsilon^q$ and $r_K \leq 1/4$, in order to visit the cell $H_{v_j}^\varepsilon$ the curve induced by $\gamma$ must cross all of the annuli.

By our choice of $m$, for each $k$ the vertices $u \in B_k$ contribute at least $1/2 - O(\varepsilon^{q-c'}) \geq 1/4$ to len$_m(\gamma)$. Hence len$_m(\gamma) = \Omega(\log(1/\varepsilon))$ and we conclude that ${\rm VEL}(\Gamma_{\rho,v}) = \Omega(\log(1/\varepsilon))$. This confirms \eqref{nomacro.goal}. The proof of \eqref{nomacro.goal2} is very similar; we omit the details, mentioning only that if $u \in \mathcal V \mathcal G_1^\varepsilon$ is a vertex of the outer face then $H_u^\varepsilon$ must intersect $\partial \mathbb{D}$. \qed

\section*{Acknowledgements}
We thank Ewain Gwynne, Jason Miller and Scott Sheffield for useful discussions and their permission to use Figure \ref{fig:mated-crt-map}. This research is supported by ISF grants 1207/15 and 1707/16 as well as ERC starting grant 676970 RANDGEOM. The second author is supported by a Zuckerman Postdoctoral Fellowship.

\footnotesize{
\bibliographystyle{abbrv}

redpajama_set_name: RedPajamaArXiv


text:
Crispomyia receptaculum är en tvåvingeart som beskrevs av Debenham 1974. Crispomyia receptaculum ingår i släktet Crispomyia och familjen svidknott. Inga underarter finns listade i Catalogue of Life.

Källor

Svidknott
receptaculum

redpajama_set_name: RedPajamaWikipedia


text:
Q: ListActivity with no animation I have some trouble with layout in my list activity.
My list contain separators and text rows
SetupActivity extend ListActivity
private MyCustomAdapter mAdapter;
TextView selection;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);

    mAdapter = new MyCustomAdapter();

    mAdapter.addItem("Help/FAQ");
    mAdapter.addSeparatorItem("Connection to Server");
    // mAdapter.addItem("Connection");
    // mAdapter.addItem("Network");
    // mAdapter.addItem("config");
    // mAdapter.addItem("User");
    // mAdapter.addItem("pass");
    // mAdapter.addItem("Email");
    // mAdapter.addItem("PlatForm");
    mAdapter.addSeparatorItem("Consumption");
    // mAdapter.addItem("100%");
    mAdapter.addSeparatorItem("Map");
    // mAdapter.addItem("Map rotation");
    // mAdapter.addItem("auto Zoom");
    // mAdapter.addItem("Measure Units");
    // mAdapter.addItem("Show Heading");
    // mAdapter.addItem("Compass North");*/
    mAdapter.addFooterItem(getString(R.string.setup_note_map));
    mAdapter.addSeparatorItem("Support");
    mAdapter.addItem("About");
    /*
     * mAdapter.addItem("Contact Us"); mAdapter.addItem("Tutorial");
     * mAdapter.addItem("Setup Wizard");
     */
    mAdapter.addSeparatorItem("Blogs");
    mAdapter.addFooterItem(getString(R.string.setup_note_blogs));

    setListAdapter(mAdapter);

    // selection = (TextView) findViewById(R.id.text);
}

public void onListItemClick(ListView parent, View view, int position,
        long id) {
    parent.getChildAt(position).setBackgroundColor(position);
    if (position == 0) {
        Intent myIntent = new Intent(SetupActivity.this,
                WebviewHandlerActivity.class);
        myIntent.putExtra("ressource", "help");
        SetupActivity.this.startActivity(myIntent);
    } else if (position == 6) {
        Intent myIntent = new Intent(SetupActivity.this,
                AboutActivity.class);
        SetupActivity.this.startActivity(myIntent);
    }

}

// Adapter Class
private class MyCustomAdapter extends BaseAdapter {

    private static final int TYPE_ITEM = 2;
    private static final int TYPE_SEPARATOR = 0;
    private static final int TYPE_FOOTER = 1;
    private static final int TYPE_MAX_COUNT = TYPE_ITEM + 1;

    private ArrayList<String> mData = new ArrayList<String>();
    private LayoutInflater mInflater;

    private TreeSet<Integer> mSeparatorsSet = new TreeSet<Integer>();

    private TreeSet<Integer> mFooterSet = new TreeSet<Integer>();

    public MyCustomAdapter() {
        getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);
        mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }

    public void addItem(final String item) {
        mData.add(item);
        notifyDataSetChanged();
    }

    public void addSeparatorItem(final String item) {
        mData.add(item);
        // save separator position
        mSeparatorsSet.add(mData.size() - 1);
        notifyDataSetChanged();
    }

    public void addFooterItem(final String item) {
        mData.add(item);
        // save separator position
        mFooterSet.add(mData.size() - 1);
        notifyDataSetChanged();
    }

    @Override
    public int getItemViewType(int position) {
        if (mSeparatorsSet.contains(position))
            return TYPE_SEPARATOR;
        else if (mFooterSet.contains(position))
            return TYPE_FOOTER;
        return TYPE_ITEM;
    }

    @Override
    public int getViewTypeCount() {
        return TYPE_MAX_COUNT;
    }

    public int getCount() {
        return mData.size();
    }

    public String getItem(int position) {
        return mData.get(position);
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {

        ViewHolder holder = null;
        int type = getItemViewType(position);
        if (convertView == null) {
            holder = new ViewHolder();
            switch (type) {
            case TYPE_ITEM:
                convertView = mInflater.inflate(R.layout.item1, null);
                holder.textView = (TextView) convertView
                        .findViewById(R.id.text);
                break;
            case TYPE_SEPARATOR:
                convertView = mInflater.inflate(R.layout.item2, null);
                holder.textView = (TextView) convertView
                        .findViewById(R.id.textSeparator);
                break;
            case TYPE_FOOTER:
                convertView = mInflater.inflate(R.layout.footer, null);
                holder.textView = (TextView) convertView
                        .findViewById(R.id.note);
                break;
            }
            convertView.setTag(holder);

        } else {
            holder = (ViewHolder) convertView.getTag();
        }
        holder.textView.setText(mData.get(position));
        return convertView;
    }

}

public static class ViewHolder {
    public TextView textView;
}

my xml item1 & item2 contain a LinearLayout with a TextView inside
and my footer.xml only a textView
My problem is when i click on a row it doesn't get orange to say that i clicked on it except my footer...(the one i don't want)
So i figure out it's because it's not in a LinearLayout so i tried to put off the LinearLayout of item1.xml but i can't compile anymore.
Does someone can explain to me how to get my row with the click Animation and not on my footers ?
Cheers

A: You are not getting clicked color because you have set a background color `

setBackgroundColor

You need to set a statelistDrawable as background
Edit: You need to set a drwable something like this
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/pressed_img" android:state_pressed="true"/>
    <item android:drawable="@drawable/default_img"/>
</selector>

redpajama_set_name: RedPajamaStackExchange


USN Diet Whey Isolean Battenberg is rated 2.7 out of 5 by 3.
Rated 1 out of 5 by Horselover2344 from Disappointed Although it tastes nice, and mixed well, it is very watery and 'non filling'. Which is a real shame. I won't purchase this product again and will purchase the other brand I got from Holland and Barratt in future which is much thicker.
Rated 5 out of 5 by DrHelly from Mixes well and tastes delicious I was a bit worried this would be a bit sweet but it tastes delicious. Looking forward to trying some other flavours in the range. Fed up with boring chocolate, strawberry and vanilla.


text:
Q: DNS resolution works most of the time but randomly fails. Usually on Google Chrome. Seems to be specific to computers at my house I recently built a website and attached it to a domain name. I bought the domain name from Google domains and added an A record pointing the domain to the IP address of the server I'm running it on. This server is an Ubuntu Server VM on Azure. Whenever I try to access the website from outside of my home WiFi it loads.

*

*When I try to access it from inside my home WiFi, it works some of the time and fails at other times.

*It always works within my home WiFi when I type in the IP address of the server. In fact, I have the server configured to do a 301 redirect to the https port, and this always executes flawlessly. When this happens, the final address in my browser reads https://based-it.com, which is what I want.

*When I type https://based-it.com explicitly, it fails about half the time. Sometimes I get a DNS lookup error from chrome, sometimes I get a "Page Failed to Load" error.

*Running nslookup on my local machine from within my home WiFi always returns the correct IP address, although it always says it's "non-authoritative". I'm using the built-in DNS service provided by Google, which I assume should work.

It's been about 27 hours since I added the A record. I would assume that by now it should be working. I am particularly concerned because the only network that appears to be having trouble is my own. I have tried configuring Google chrome to use my ISP DNS server. When I do this, it redirects me to some Verizon search engine page. When I configure chrome to use the google DNS servers, it usually just gives me a DNS lookup error. As I mentioned above, sometimes that isn't the error.
I've monitored the webserver live through ssh while these errors occur. It clearly isn't even receiving a connection when I get the "Page Failed to Load" error. Something outside of my control appears to be failing.

A: This isn't necessarily a general purpose answer, but, the issue resolved itself after a few days. It's important for me to note that I also went and added a www record. This seemed to fix the issue for the most part. I'm not sure if it was time, or that record that fixed it.
I should note that I still occasionally get DNS lookup failures, but they are much less frequent. They still only happen inside my home WiFi network.


text:
FROM docker:17.12-dind

RUN apk add --no-cache ca-certificates

# cleanup warning: https://github.com/docker-library/docker/issues/55
RUN addgroup -g 2999 docker

COPY preentry.sh /usr/local/bin/

ENTRYPOINT ["preentry.sh"]

# USAGE: Add a CMD to your own Dockerfile to use this (NOT an ENTRYPOINT), eg:
# CMD ["./runner"]

redpajama_set_name: RedPajamaGithub


The stress in our lives is real. The World Health Organisation states that depression is now the number one leading cause of global illness, with anxiety not far behind!
We're constantly upgrading our iphones and computers, but what about upgrading the inner technology of our own brains?
The 6-month Mind Life Project online membership will reduce your stress and worry, build greater focus, emotional balance and resilience in daily life.
It's a 6-month mindfulness training program that runs from June-Dec. It will help you create more space, find more focus and improve your day-to-day productivity and the inner tools you'll learn are all backed up by the latest neuroscience. Get immediate access when you register.
6 x 1hr monthly live, online guided meditation sessions with Elise from July-Dec. Meditations will range from 25-35mins with Q&A time at the end of each session. You'll learn how to deepen relaxation, manage the inner mind chatter, control emotions, generate positive emotional states, experience meditations for better sleep and greater resilience.
24hr access to listen to the meditation recordings over the 6 month membership. These longer meditation recordings include commonly asked questions and answers from the community – an invaluable learning opportunity. Participants love the opportunity to use longer guided meditations to deepen the benefits.
6 x monthly guest expert video interviews. Learn how to integrate powerful mindfulness practices into your life for improved wellbeing and greater effectiveness. Learn mindfulness for greater creativity and innovation, for developing a growth mindset, greater focus, less stress at work, improved relationships, and tools to teach children mindfulness and greater resilience. You'll be inspired by the value packed program and actionable tools that will improve all areas of your life.
An exclusive members only Mind Life Project Facebook group to stay powerfully supported and connected with others taking the journey. Get bonus resources, including spontaneous live guided meditations with Elise, book recommendations, book club conversations, and have all of your ongoing mindfulness questions answered. Participants have shared that this element of the program is was worth the entire price of the program.
Have 6 month access to Elise's direct input, and advice through the Facebook group and live calls. Have your questions answered, get support and tips on tailoring the practice to suit your needs and life. Elise no longer offers one on one consultation, so this is the only way to have her personal support for the entire 6 month experience.
Step into your oasis of calm and wisdom through the meditation library. You'll find guided meditations of all lengths and themes that you can tune into 24/hrs a day. Meditations for better sleep, creating a vision for your happiness, deeper relaxation, less mind chatter and many more.
Transform your diet and be inspired to eat mindfully with a digital mindful eating recipe book including recipes from Australia's best foodie bloggers.
Downloadable reflection guides to help you integrate your learning through the months and transform your new knowledge into actionable steps to improve your life, reduce your stress, increase your wellbeing and maintain the benefits of a regular mindfulness practice.
A fortnightly supportive reminder email to keep you on track pone of the hardest things about meditation is to make it a habit. You'll get a fortnightly friendly nudge in your inbox to make sure you stay on track.
Written transcripts of all of the monthly video interviews get out your highlighter print these out and make sure you don't miss any of the transformative tools and wisdom offered.
Downloadable meditation journal help you monitor your progress a key to progress is monitoring your practice. This journal will keep you on track and support you in building a habit of meditation.
Try out one of the many guided meditations included in the Mind Life Project meditation library that you can access 24hrs a day to tap into greater calm.
You're new to meditation and curious to learn what it's all about.
Elise Bialylew is author of the no#1 bestselling meditation book, The Happiness Plan and founder of Mindful in May, the world's largest online global mindfulness fundraising campaign that teaches thousands of people each year to meditate, while raising funds to build clean water projects in the developing world. A doctor trained in psychiatry, turned social entrepreneur and mindfulness expert, she's passionate about supporting individuals and organisations to develop inner tools for greater wellbeing and flourishing, and offers workshops and training at The Mind Life Project. Her work has featured in the Huffington Post, New York Times, and on Australian Television and radio.
Susan Piver, bestselling author of six books and a student of Buddhism since 1995, teaches workshops on meditation, relationships and creativity. She is a frequent guest on network television, including The Oprah Winfrey Show, Today, and The Tyra Banks Show. In 2011, she launched The Open Heart Project to teach meditation.
A powerful practice called "taking in the good" that can rewire your brain towards greater happiness and offset the negativity bias.
Rick Hanson, Ph.D., is a neuropsychologist and New York Times best-selling author. His books include Hardwiring Happiness, Buddha's Brain, Just One Thing and Mother Nurture. Founder of the Wellspring Institute for Neuroscience and Contemplative Wisdom and on the Advisory Board of the Greater Good Science Center at UC Berkley, he's been an invited speaker at Oxford, Stanford, and Harvard, and taught in meditation centers worldwide.
David Rock is author of Your Brain at Work and co-founder of the NeuroLeadership Institute, and CEO of the NeuroLeadership Group, a global human performance firm with operations in 24 countries. David is on the advisory board and faculty of the international business school CIMBA in Italy, and a guest lecturer at Oxford University's Business School.
Carol Dweck Ph.D., is one of the world's leading researchers in the field of motivation and is the Lewis and Virginia Eaton Professor of Psychology at Stanford University. Her research has focused on why people succeed and how to foster success.
Gregory Kramer is Founder and Guiding Teacher of Insight Dialogue, a powerful meditation practice which brings mindfulness to the domain of relationships, to deepen communication and understanding. He travels internationally to teach and recently was a guest speaker at Google, sharing his innovative work. His most recent book is Insight Dialogue: The Interpersonal Path To Freedom.
The three A,B,C's of living a mindful life.
Susan Kaiser Greenland is the author of The Mindful Child and co-founder of Inner Kids. The Mindful Child, is a book for parents and professionals about how to teach the transformative techniques of mindful awareness to children and teens. The Inner Kids program includes games, activities, and songs to help kids tap into their awareness of breathing, the physical world, their inner lives and to develop their attention skills. In 2006, she was named a "Champion of Children" by First 5 LA, the largest and most influential children's advocacy group in Los Angeles.Susan was a member of the clinical team of the Pediatric Pain Clinic at UCLA's Mattel's Children's Hospital for many years, Co-Investigator on a multi-year, multi-site research study at UCLA's Mindful Awareness Research Center/Semel Institute on the impact of mindfulness in education, and a Collaborator on an investigation of mindful eating for children and their caregivers at UC-SF.
Mark Coleman, M.A., founder of Awake in the Wild and The Mindfulness Institute, is an internationally recognised mindfulness facilitator who has guided students on five continents to find greater peace and fulfilment through nature-based mindfulness practice and mindfulness retreats. The author of Awake in the Wild, Mark is also a corporate consultant, individual counsellor, poet, wilderness guide, and outdoor adventurer.
As a doctor specialised in psychiatry, mindfulness expert and and author of no#1 bestselling meditation book, The Happiness Plan, I'm passionate about offering this training because I know it works.
Having discovered the incredible power of mindfulness in my own life, I knew that it could help others too.
I DON'T HAVE TIME FOR THAT – LIFE IS BUSY ENOUGH AS IT IS!
And I get it – I truly do.
See, a lot of stress-relieving techniques just simply aren't practical. On top of that, many are steeped in religious dogma that a lot of people aren't comfortable with. And meditation is often really misunderstood – most people think it's about stopping your thoughts – which it's not!
Thinking about mindfulness in this way means you're missing out on a truckload of potential benefits.
Not to mention: it's not true.
Mindfulness meditation – is actually a practice that has been proven by science to help rewire your brain, calm your body's stress response, and improve your ability to deal with the ups and downs of daily life.
Mindfulness techniques are being used by world leaders, CEOs, elite athletes, artists and entertainers across the globe to help them perform at their peak, deal with stress, and feel better along the way.
Through the Mind Life Project Membership you'll be supported over the next 6-months personally by me and other world's leading mindfulness experts to learn the inner tools to outer flourishing.
Stay on track with a live online guided meditation session each month starting July, that will offer you a way to practice in community and provide a helpful check-in. It's easy for the busyness of life to throw you off track with your meditation, this is a valuable monthly booster to keep you inspired and develop your practice. You'll have a chance to ask your questions and hear other questions from members of the group.
You'll hear from more world leading guest experts who will share powerful insights and teachings around how to apply mindfulness to different aspects of your life and expand your toolkit for greater resilience, courage, focus and creativity.
You'll find extra resources shared in this group including articles, books , occasional spontaneous guided meditations with Elise. This as a supportive community that will help you stick to your practice, share resources and knowledge and help you actually stay motivated to bring the practices into your own life. Elise will be regularly inside the Facebook group answering your questions and supporting you over the 6-months.
These emails will be a friendly nudge to keep you on track with your meditation and let you know when there's new content and the monthly live guided session so you don't miss it.
Discover new books that will inspire and transform you and be supported by the book club to transform this new knowledge into actionable steps that will noticeably transform your life.
Print these out and read them to consolidate your learning. Absorb the powerful tools and strategies that will transform your life.
Return to your favourite meditation practices 24hrs a day – an instant doorway into greater calm, ease and focus. When you're emotionally triggered or overwhelmed, you'll have this library as your 24hr sanctuary.
THE PROGRAM STARTS IN JUNE AND ONLY RUNS ONCE A YEAR!
In person guided meditation classes usually cost $20, but you get access to so much more through this program, for less than $2 a day when you join the 6-month Mind Life Project Membership by Tuesday 12th June midnight AEST.
The 6-month Mind Life Project membership is like a personal trainer for your mind, where you'll be supported to learn how to meditate through the guided live online sessions and library of meditations, and stay on track with a supportive virtual community to develop the benefits of a mind that is functioning at its best.
Copyright © 2019 Mind Life Project Members Area. All rights reserved.


text:
Home > News > Royal visitor officially opens EKM's offices
Royal visitor officially opens EKM's offices
By Shannon Mullin | 1 min read | Leave a Comment on Royal visitor officially opens EKM's offices
EKM's brand new offices have been opened by The Rt Hon Lord Shuttleworth, the Queen's representative for Lancashire.
Lord Shuttleworth was given a behind-the-scenes look at our new £3.5m home in Fulwood, before a ceremony marked its official opening.
The tour included our state-of-the-art office space, which has been designed to accommodate 250 employees, as well as our fully equipped kitchen, on-site gym, games room and an auditorium which is available for hire to local businesses.
He also took great interest in the building's iconic slide, which connects the third floor with the ground floor, but could not be persuaded to try it out.
During the visit, Lord Shuttleworth engaged in a lengthy discussion with company founder Antony Chesworth about the digital economy and its place in Lancashire's future.
He learned all about our software, how it helps other businesses sell their products online, and how we have grown from a back-bedroom operation to an employer of nearly 100.
Antony said: "We're exceptionally proud of our new home in Fulwood. It took almost four years of designing, planning and construction but the end result has been worth it: we've got a world-class place to work.
"To have Lord Shuttleworth officially open the building has been a great honour and shows how far we have grown as a business."
Antony added: "Lord Shuttleworth showed a great interest in what we're doing here. He was impressed by our our company and our new offices, and he was keen to discuss how tech businesses such as ours are putting Lancashire on the world map once more."
Look out for a digital first from Lord Shuttleworth, when he makes his YouTube debut on Antony's 'Life of a UK Entrepreneur' channel later this autumn.
Tags - EKM
Shannon Mullin
Social Media and Content Creation @ EKM. Loves drawing, animals and all things crafty.
View more posts by Shannon Mullin
Has Instagram gone too far this time?
Why click and collect will be the key to small business survival in second lockdown
Non-essential products banned in Wales, England says "Thanks"

redpajama_set_name: RedPajamaCommonCrawl


The SIELE (Servicio Internacional de Evaluación de la Lengua Española) is an official and internationally recognized Spanish language proficiency exam. It is also the first official exam to certify the language abilities of native Spanish speakers. Students can choose to take a global version which certifies all competencies at once or to take individual exams for each of the four main skills. Skills evaluated include reading, listening, written expression and interaction, and oral expression and interaction. With over 400 million Spanish speakers world-wide and 31 countries where Spanish is the official language, Spanish is the second most spoken language in the world. It is easy to see why Spanish is such an important skill to have, an asset to any successful resume. Holding a SIELE certificate gives students and professionals a significant advantage.
This exam was created by the Instituto Cervantes with the collaboration of the University of Salamanca (USAL) and the National Autonomous University of Mexico (UNAM) to produce an exam that tests "universal Spanish", taking into account that Spanish is a living language with a vast variety of dialects spoken world-wide with differing expressions, phrases and vocabulary.
Like the well-known TOEFL (Test of English as a Foreign Language) candidates are scored from 0 to 1,000 points. Unlike the DELE Exam (Diploma of Spanish as a Foreign Language), it will not be a pass or fail exam, rather candidates will receive a level of Spanish proficiency depending on their overall score.
Our SIELE Exam Preparation Program will prepare you to take the SIELE with confidence. Classes focus on reinforcing your Spanish skills at your particular language level, and on how to best approach the SIELE exam specifically.
SIELE Exam Preparation courses are available at any don Quijote school. Students at any level can take our preparation courses and will prepare to take the SIELE at their current Spanish proficiency level. Class sizes vary but always include at least three and a maximum of 10 students. Students must be at least 18 years of age in order to take this course.


Is Excel Running Your Business? a Transition to Project Management Software is Worth the Investment.
Excel often seems to be the obvious, quickest and easiest resource to get things started.
the list goes on and on with all the limitations.
It is no surprise that collaborating via spreadsheets becomes unbearable rather quickly as projects and processes grow in complexity.
These systems even incorporated many other features that make it easier for the business users to manage documents, projects and process workflows.
the time saved using project management software will provide ROI.


text:
Jamison Pfeifer
Jamison Pfeifer is a researcher and writer based in New York.
Timo Andres: Work Songs
By Jamison Pfeifer
Sometime around 1914, the American composer Charles Ives outlined a daily schedule for life at his Redding, Connecticut home in a diary called "Our Book" that he shared with his wife, Harmony. By 6:30 am, Ives was "up & at them," followed by chores and then a quarter-of-an-hour playing Bach.


Users may change their own password at any time.
Enter your current password, new password twice, and click Save.
Include at least one number and one upper case letter; special characters (! or * for example) may also be used.
Be easy enough to remember but not so easy that it would be easily guessed by another person.
Enter the existing and new password details and Save.
You can force a user to change their password by clicking Advanced on their user account.
In the New Password and Confirm Password boxes type in the new password. Select Force a password reset on next login.
After the password has been changed, the user logs in with the temporary password and is immediately prompted to create a new, permanent, password.


text:
Q: Run PHP-Script through CLI and don't stop it when disconnecting SSH I have a droplet at digitalocean and want to run a php script through CLI (I connect via Putty). Unfortunately, it stops when I close my Putty-client.
Is it possible that it doesn't stop? At the moment I do a workaround with cron:
* * * * * php /var/www/admin/myscript.php

I remove the line as soon as the script has started.

A: Use screen to run your program
screen php /var/www/admin/myscript.php

and then detach from the screen using CTRL+A d
You can use screen to run any number of programs by running screen command_you_want_to_run
and then detach from the screen
More about screen here http://www.gnu.org/software/screen/
A gentle introduction to screen http://www.thegeekstuff.com/2010/07/screen-command-examples/


text:
SMI Properties
Via the rich tradition in motorsports enjoyed by its parent company, Speedway Motorsports, Inc., SMI Properties has played a significant role in developing corporate sponsorship opportunities. SMI Properties quickly built a reputation of credibility and reliability, offering quality merchandise, excellent workmanship and thorough account management and service.
SMI Properties' commitment to understanding the industry in its entirety has led to long-standing relationships with many of motorsports' top drivers, team owners and corporate sponsors, as well as NASCAR. That same commitment and loyalty is carried to its fans, clients, and their customers.
As a full-service, vertically integrated company, SMI Properties can tailor a complete turn-key, employee-based or retail program. From concept development to distribution of the final product, the vertical integration allows for the elimination of middle-men layers.
SMI Properties employs an extensive, full-service art department with the capability to control a project from concept to finished product. Specialized artists utilize state-of-the-art computer software and production equipment capable of producing the highest quality, cutting edge designs available, with an expertise in a wide variety of licensed designs.
SMI Properties' graphic artists and separation specialists are routinely called upon to create multi-color, high-end simulated process prints for a wide variety of corporate sponsors. In addition, licensor requests and changes can be expedited because of SMI Properties' ability to produce complete color separations in-house, just steps from the production facility.
SMI Properties has a complete in-house screen printing operation that utilizes 12- and 16-color, state-of-the-art equipment designed for high-definition imprints with graphic detail. In addition to industry staple colors, the SMI Properties screen printing department specializes in dark color apparel imprinting, maintaining the color quality and intricate detail of the design. The company's production facility is capable of producing 96,000 impressions per day.
SMI Properties' screen print specialists are also well-versed in modern specialty ink applications. Some of the specialty selections available to clients include polychromatic ink, foiling application, crystalline ink, suede, suede puff, ultra gel and high density ink applications.
The SMI Properties embroidery department, like all of the company's production operations, functions completely in-house and can control all steps of the embroidery process, from initial concept, to digitizing, to completed garment\ and its distribution.
SMI Properties can create designs and art from a client's concept or digitize client-provided art. Technical knowledge of embroidery and appliqué techniques, relevant to matching the preferred garment, is then applied to meet all client needs and specifications.
Via growth, acquisition and utilization of SMI's eight speedways, SMI Properties has developed a merchandising operation to fully complement the vertical structure of the company.
SMI Properties operates high-traffic retail gift shops, year-round, at SMI speedways. For major events SMI Properties will supplement the gift shops, and its other permanent concourse souvenir locations, with a traveling fleet of merchandise trailers to further increase venue presence.
SMI Properties' trackside merchandise subsidiary, "Sports Design", provides race team, driver and corporate sponsor clients with their own "custom retail rigs" at every NASCAR race from February through November. "Motorsports by Mail", SMI Properties' e-commerce and catalog company, supplements its 24-hour, 7-day-a-week retail e-commerce operation with periodic special program flyers to more than one million race fans.
These additional sources of distribution have increased the effectiveness of SMI Properties' program to source, design, manufacture apparel, inventory and distribute any item, collectible or gift.
SMI Properties' manufacturing and warehouse operation is located within a 53,000+ square foot, state-of-the-art facility, adjacent to its corporate offices in Harrisburg, NC, a short distance from Charlotte Motor Speedway.
SMI Properties has the capability to inventory and provide product fulfillment service. With a selective racking system designed for inventory rotation, the warehouse is able to accommodate more than 500,000 pieces of inventory. All packing and shipping is self-contained and completed at the warehouse facility. SMI Properties' sewing, folding and bagging equipment can accommodate additional client requested identity or packing requests so the final product can be ready for display or distribution, domestically or internationally.
Aside from being the Golf Cart vendor for Atlanta Motor Speedway, Bristol Motor Speedway, Charlotte Motor Speedway, Dover Motor Speedway, Kentucky Speedway, Las Vegas Motor Speedway, Nashville Superspeedway, New Hampshire Motor Speedway, North Wilkesboro Speedway, Sonoma Raceway, Texas Motor Speedway, and their affiliates which are all owned and operated by Speedway Motorsports, LLC., SMI Properties takes part in the rich tradition in motorsports enjoyed by its parent company, Speedway Motorsports, LLC. SMI Properties has played a significant role in developing corporate sponsorship opportunities. SMI Properties quickly built a reputation of credibility and reliability, offering quality merchandise, excellent workmanship and thorough account management and service.
SMI Properties' commitment to understanding the industry in its entirety has led to long-standing relationships with many of motorsports' top drivers, team owners and corporate sponsors, as well as NASCAR. That same commitment and loyalty is carried to its fans, clients, and their customers.
Rules & Regulations Policies FAQ
Golf Cart Rules & Regulations
At all times, SMIP and/or the respective SMIP affiliate ("Speedway") Speedway shall mean a motorsports facility owned by a direct or indirect Speedway Motorsports, LLC subsidiary – Atlanta Motor Speedway, Bristol Motor Speedway, Charlotte Motor Speedway, Dover Motor Speedway, Kentucky Speedway, Las Vegas Motor Speedway, Nashville Superspeedway, New Hampshire Motor Speedway, North Wilkesboro Speedway, Sonoma Raceway, Texas Motor Speedway.
All SMIP affiliate Speedway's, welcomes their guest with handicaps/disabilities and seek to provide wheelchair and EVC friendly accommodations, as well as handicap accessible seating areas. We encourage you to use the Courtesy Shuttles and/or Handicap Shuttles that operate during all NASCAR events in order to travel around the premises. If you have further questions regarding handicap assistance, please contact the attending track.
Due to liability and insurance regulations, and to ensure all fans have a safe and enjoyable visit, the following rules regarding transportation while on property are strictly enforced:
The use of any unauthorized vehicle, including but not limited to:
Personal Golf Carts, Quads, Scooters (motorized, electric, push, or kick), Mopeds, Mini-Bikes, Dirt Bikes, Off-Road Vehicles, Mules, Gators, ATVs, Segway's, Bicycles, Rollerblades, Roller-skates, and Skateboards are STRICTLY PROHIBTED while on SMIP affiliate Speedway property at any time. We encourage fans to use the Courtesy and/or Tram Shuttles operating during all NASCAR events to travel around the property.
Authorized transportation at any SMIP affiliate Speedway, will be limited to authorized credentialed users only. Authorized users shall include Speedway Staff, Event Personnel, Vendors, Sponsors, Media, Team Owners, Team Crew Chiefs, and Team Drivers. ALL authorized users will be required to fulfill 5-million-dollar liability insurance requirements, associated with operating said vehicles while on any SMIP affiliate Speedway property, prior to being issued a credential.
Any unauthorized usage of said vehicles will be subject to either immediate removal from SMIP affiliated Speedway property. Anyone operating a golf cart without proper insurance coverage and/or credentials will be asked to remove the cart from property immediately. If cart cannot be removed from property, at the discretion of the owners, SMI Properties will allow the cart to be stored at the SMI Properties golf cart compound until the conclusion of the event. However; Speedway Globe LLC d/b/a SMI Properties, its subsidiaries, affiliates, or respective shareholders, members, partners, officers, managers, directors, or employees will not be held liable for any stored cart in any way. ALL refusals of dismissal will result in trespassing and further prosecution.
At all times, SMIP and/or the respective SMIP affiliate speedway ("Speedway") reserves the right to revoke golf cart credential and Equipment or Equipment privileges should Company abuse or use improperly.
Golf Cart Policies
Equipment use is for Business purposes Only.
Only validly-licensed drivers who are 18 or older and authorized by company, are allowed to operate Equipment.
DO NOT use Equipment as a means for product sampling or couponing.
DO NOT take Equipment off of Speedway Property.
DO NOT park Equipment in unauthorized areas of Speedway Property.
DO NOT leave Equipment unattended unless, the ignition key is switched off and removed and cart is secured by lock and chain.
DO NOT allow passenger(s) to sit on or about areas on Equipment not specifically designed for seating including but not limited to, the front cowl or in cargo box.
DO NOT allow passenger(s) to stand while Equipment is in operation.
DO NOT use cellular phones or personal data devices while operating Equipment.
DO NOT operate Equipment while under the influence of any quantity of alcoholic beverages, marijuana, other narcotics, or substances whatsoever, whether or not prescribed by a physician.
ALWAYS ensure passengers are seated and ready before operating Equipment.
ALWAYS maintain a safe and cautious speed during operation. The maximum speed on all Speedway properties is 25mph unless otherwise posted.
ALWAYS use extreme caution in highly congested areas, including but not limited to hospitality and display areas, concession areas, souvenir areas, crosswalks, entrances to infield, etc.
ALWAYS use lights at Night.
ALWAYS report any accidents or incidents Equipment is involved in to Speedway Security and to the SMIP Golf Cart Compound at the time of occurrence.
Golf Cart FAQ
Who can I rent Golf Carts from?
SMI Properties is the exclusive golf cart vendor at all Speedway Motorsports, Inc. and affiliate properties for all event and non-event rentals.
I do not have the minimum required Insurance and/or a General Liability Policy; can I purchase Insurance through SMI Properties?
No. SMI Properties does not sell insurance. We only rent or credential those with the approved Insurance containing $5 million Commercial General Liability per occurrence, this may be obtained by adding an Excess Umbrella to the GL Policy, $5 million Automobile Liability for all personal carts, $15,000 per golf cart Property Coverage Policy for all rented carts. All policies must remain in effect for the entirety of the event period.
Can anyone rent or bring golf carts on property?
Due to liability and insurance regulations, and to ensure all fans have a safe and enjoyable visit, Golf carts are limited to business use only. We encourage fans to use the Courtesy Shuttles, Handicap shuttles and Trams shuttles that operate during all NASCAR, NHRA, IndyCar, and other miscellaneous events in order to travel around the premises.
What do you mean by business use only?
Business use and/or purpose to rent or credential a golf cart includes: Speedway Staff, Event Personnel, Levy Vendors, Souviner Vendors, Sponsors, Team Owners, Team Crew Chiefs, Team Drivers, Media, etc. All must have a signed agreement with either SMI, SMIP, Nascar, and/or Levy Restaurants in order to qualify.
DateName
2023 Golf Cart Rental Request Packet
COI Requirements for golf cart rental and credentials
© 2023 Speedway Motorsports, LLC
https://www.speedwaymotorsports.com
Dedicated Server Provided by Tier Point
Atlanta Motor Speedway
Bristol Motor Speedway
Dover Motor Speedway
Kentucky Speedway
Nashville Superspeedway
New Hampshire Motor Speedway
North Wilkesboro Speedway
Sonoma Raceway
Texas Motor Speedway
5239 zMAX Blvd
Harrisburg, NC 28075
704-455-9453 (O)
Monday - Friday: 8–5pm
Carts & Credentials
Assets & Transportation


People put so much emotional and physical effort into finding the right property that it's easy to neglect the importance of finding the right mortgage.
It is not just about choosing the loan with the rates and repayment options that suit, it is also about being aware of other "accessories" and obligations that go with it.
You don't want to encounter any nasty surprises, so the Mortgage and Finance Association of Australia (MFAA) has put together the top five tips for borrowers.
1. Shop around for the most suitable deal. The lowest rate doesn't necessarily mean the best mortgage. If you don't want to do all the shopping around yourself, you can use the services of a mortgage broker. Mortgage brokers assist you in looking for the best overall loan for your current situation from a panel of different lenders.
To ensure you have a level of consumer protection, make sure the broker you are dealing with is an Accredited Finance Broker (AFB) with the MFAA. AFBs have satisfied certain educational and professional entry levels.
2. Read the mortgage contract carefully. Before you sign up for a home loan you should always read and understand the credit contract from the lender. This contract by law must outline the terms and conditions of the loan in plain English. Seek independent legal and financial advice when you are entering into any contract, especially one of this magnitude. Remember, once you have signed their credit contract you are bound by the lender's terms and conditions.
3. Borrower's obligations. As the borrower, you have ongoing obligations to your lender after the mortgage has been approved. The most important issue is that you need to make all repayments either on or by the due date. Put the due dates in your diary or arrange for your bank to automatically deduct the amount each month to avoid any problems.
4. Be comfortable with your repayments at any time. It is great to get the home you always wanted but be realistic about where you are at in your life.
Draw up a regular budget and where possible, allow for any planned changes to your circumstances such as paying for a wedding, stopping work to have a baby, starting a business.
5. Have the mortgage, but thinking of refinancing. There are many merits to refinancing into a new loan or with a new lender but first, make sure you are aware of all the cost associated with refinancing.
Refinancing is not free. Costs associated with refinancing may include: break costs if you have a fixed interest rate, early repayment fees, deferred establishment fees, along with government and mortgage discharge fees, plus new loan application fees, stamp duty, mortgage registration fees and mortgage insurance costs.
By taking time to think before jumping into anything, your journey to home ownership can be a pleasant one.


text:
Lessons Well, it's the thought that counts.
"Well, it's the thought that counts."
Your cousin sent you a birthday present. It was a book, but you're actually not interested in reading that book at all. Even though you don't like the gift, you're happy that your cousin sent you something. You think this to yourself.
One reason for saying "well" at the beginning of a sentence is to show that you're unsure about something.
This can happen when someone asks you a question that you don't immediately know the answer to:
A: What are you doing this weekend?
B: Well, let's see... Oh! I'm having lunch with Gavin on Saturday.
It can also happen when you're trying to say something nice, even though you're thinking things that aren't nice.
A: What do you think of Lana?
B: Well... she's... always very punctual.
You shouldn't use "well" in this way in formal written English.
It's the thought that counts.
This is a set phrase that English speakers use to talk about gifts. It means that it's OK if a gift isn't perfect; the purpose of giving someone a gift is just to show that you care about that person.
People say this when someone gets a gift which doesn't match what they wanted.
gifts set phrases
"There's a tournament being held in April that I was thinking about signing up..."
"That new guy is so eager to please. I wish he'd tone it down a little."


Water Damage Las Vegas NV - Family-owned company with BBB A rating. 24/7 live calls, at your door in less than 1 hour. Free estimates, direct insurance billing. flood damage, sewage cleanup, water cleanup.
One of the major perks of hiring digital marketing Australia Company is the wide range of a target customer. The marketing company has a broad approach and data of consumer behavior and consequently sets plan to market the brand. It will undoubtedly lead to sufficient viewers reach rapidly.
Bacteria can live in your mouth in the form of the plaque, causing cavities which can lead to several gum diseases. Practicing good oral hygiene is a must in order to keep your mouth clean.
Download and install your Mcafee Antivirus from http://installmcafee.net/. If you want any help related to download and installation of Mcafee antivirus you can call at 1-855-408-6697 for USA and +44 800-088-5029 for UK and 1-855-408-6697 for Australia.


text:
package nimbusec

import (
	"bytes"
	"fmt"
	"strconv"
	"time"
)

// Domain represents a nimbusec monitored domain.
type Domain struct {
	Id        int      `json:"id,omitempty"` // Unique identification of domain
	Bundle    string   `json:"bundle"`       // ID of assigned bundle
	Name      string   `json:"name"`         // Name of domain (usually DNS name)
	Scheme    string   `json:"scheme"`       // Flag whether the domain uses http or https
	DeepScan  string   `json:"deepScan"`     // Starting point for the domain deep scan
	FastScans []string `json:"fastScans"`    // Landing pages of the domain scanned
}

type DomainEvent struct {
	Time    Timestamp `json:"time"`
	Event   string    `json:"event"`
	Human   string    `json:"human"`
	Machine string    `json:"machine"`
}

type Timestamp struct {
	time.Time
}

type DomainMetadata struct {
	LastDeepScan Timestamp `json:"lastDeepScan"` // timestamp (in ms) of last external scan of the whole site
	NextDeepScan Timestamp `json:"nextDeepScan"` // timestamp (in ms) for next external scan of the whole site
	LastFastScan Timestamp `json:"lastFastScan"` // timestamp (in ms) of last external scan of the landing pages
	NextFastScan Timestamp `json:"nextFastScan"` // timestamp (in ms) for next external scan of the landing pages
	Agent        Timestamp `json:"agent"`        // status of server agent for the given domain
	Files        int       `json:"files"`        // number of downloaded files/URLs for last deep scan
	Size         int       `json:"size"`         // size of downloaded files for last deep scan (in byte)}
}

type DomainApplication struct {
	Name       string `json:"name"`
	Version    string `json:"version"`
	Path       string `json:"path"`
	Category   string `json:"category"`
	Source     string `json:"source"`
	Latest     bool   `json:"latest"`
	Vulnerable bool   `json:"vulnerable"`
}

type DomainIssues struct {
	DomainID int    `json:"domainId,omitempty"`
	Category string `json:"category"`
	Issues   int    `json:"issues"`
	Severity int    `json:"severity"`
	Src      string `json:"src"`
}

type Screenshot struct {
	Target   string `json:"target"`
	Previous struct {
		Date     Timestamp `json:"date"`
		MimeType string    `json:"mime"`
		URL      string    `json:"url"`
	} `json:"previous"`
	Current struct {
		Date     Timestamp `json:"date"`
		MimeType string    `json:"mime"`
		URL      string    `json:"url"`
	} `json:"current"`
}

func (t Timestamp) MarshalJSON() ([]byte, error) {
	ts := t.Unix()
	stamp := strconv.FormatInt(ts*1000, 10)
	return []byte(stamp), nil
}

func (t *Timestamp) UnmarshalJSON(b []byte) error {
	if bytes.Equal(b, []byte("null")) {
		return nil
	}

	ts, err := strconv.ParseInt(string(b), 10, 64)
	if err != nil {
		return err
	}

	*t = Timestamp{time.Unix(ts/1000, 0)}
	return nil
}

// CreateDomain issues the API to create the given domain.
func (a *API) CreateDomain(domain *Domain) (*Domain, error) {
	dst := new(Domain)
	url := a.BuildURL("/v2/domain")
	err := a.Post(url, Params{}, domain, dst)
	return dst, err
}

// CreateOrUpdateDomain issues the nimbusec API to create the given domain. Instead
// of failing when attempting to create a duplicate domain, this method will update
// the remote domain instead.
func (a *API) CreateOrUpdateDomain(domain *Domain) (*Domain, error) {
	dst := new(Domain)
	url := a.BuildURL("/v2/domain")
	err := a.Post(url, Params{"upsert": "true"}, domain, dst)
	return dst, err
}

// CreateOrGetDomain issues the nimbusec API to create the given domain. Instead
// of failing when attempting to create a duplicate domain, this method will fetch
// the remote domain instead.
func (a *API) CreateOrGetDomain(domain *Domain) (*Domain, error) {
	dst := new(Domain)
	url := a.BuildURL("/v2/domain")
	err := a.Post(url, Params{"upsert": "false"}, domain, dst)
	return dst, err
}

// GetDomain retrieves a domain from the API by its ID.
func (a *API) GetDomain(domain int) (*Domain, error) {
	dst := new(Domain)
	url := a.BuildURL("/v2/domain/%d", domain)
	err := a.Get(url, Params{}, dst)
	return dst, err
}

// GetDomainByName fetches an domain by its name.
func (a *API) GetDomainByName(name string) (*Domain, error) {
	domains, err := a.FindDomains(fmt.Sprintf("name eq \"%s\"", name))
	if err != nil {
		return nil, err
	}

	if len(domains) == 0 {
		return nil, ErrNotFound
	}

	if len(domains) > 1 {
		return nil, fmt.Errorf("name %q matched too many domains. please contact nimbusec.", name)
	}

	return &domains[0], nil
}

// FindDomains searches for domains that match the given filter criteria.
func (a *API) FindDomains(filter string) ([]Domain, error) {
	params := Params{}
	if filter != EmptyFilter {
		params["q"] = filter
	}

	dst := make([]Domain, 0)
	url := a.BuildURL("/v2/domain")
	err := a.Get(url, params, &dst)
	return dst, err
}

// UpdateDOmain issues the nimbusec API to update a domain.
func (a *API) UpdateDomain(domain *Domain) (*Domain, error) {
	dst := new(Domain)
	url := a.BuildURL("/v2/domain/%d", domain.Id)
	err := a.Put(url, Params{}, domain, dst)
	return dst, err
}

// DeleteDomain issues the API to delete a domain. When clean=false, the domain and
// all assiciated data will only be marked as deleted, whereas with clean=true the data
// will also be removed from the nimbusec system.
func (a *API) DeleteDomain(d *Domain, clean bool) error {
	url := a.BuildURL("/v2/domain/%d", d.Id)
	return a.Delete(url, Params{
		"pleaseremovealldata": fmt.Sprintf("%t", clean),
	})
}

// FindInfected searches for domains that have pending Results that match the
// given filter criteria.
func (a *API) FindInfected(filter string) ([]Domain, error) {
	params := make(map[string]string)
	if filter != EmptyFilter {
		params["q"] = filter
	}

	dst := make([]Domain, 0)
	url := a.BuildURL("/v2/infected")
	err := a.Get(url, params, &dst)
	return dst, err
}

// ListDomainConfigs fetches the list of all available configuration keys for the
// given domain.
func (a *API) ListDomainConfigs(domain int) ([]string, error) {
	dst := make([]string, 0)
	url := a.BuildURL("/v2/domain/%d/config", domain)
	err := a.Get(url, Params{}, &dst)
	return dst, err
}

// GetDomainConfig fetches the requested domain configuration.
func (a *API) GetDomainConfig(domain int, key string) (string, error) {
	url := a.BuildURL("/v2/domain/%d/config/%s/", domain, key)
	return a.getTextPlain(url, Params{})
}

// SetDomainConfig sets the domain configuration `key` to the requested value.
// This method will create the domain configuration if it does not exist yet.
func (a *API) SetDomainConfig(domain int, key string, value string) (string, error) {
	url := a.BuildURL("/v2/domain/%d/config/%s/", domain, key)
	return a.putTextPlain(url, Params{}, value)
}

// DeleteDomainConfig issues the API to delete the domain configuration with
// the provided key.
func (a *API) DeleteDomainConfig(domain int, key string) error {
	url := a.BuildURL("/v2/domain/%d/config/%s/", domain, key)
	return a.Delete(url, Params{})
}

func (a *API) GetDomainEvent(domain int, filter string, limit int) ([]DomainEvent, error) {
	params := Params{
		"limit": strconv.Itoa(limit),
	}
	if filter != EmptyFilter {
		params["q"] = filter
	}

	dst := make([]DomainEvent, 0)
	url := a.BuildURL("/v2/domain/%d/events", domain)
	err := a.Get(url, params, &dst)
	return dst, err
}

func (a *API) CreateDomainEvent(domain int, log *DomainEvent) error {
	url := a.BuildURL("/v2/domain/%d/events", domain)
	return a.Post(url, Params{}, log, nil)
}

func (a *API) GetDomainMetadata(domain int) (*DomainMetadata, error) {
	dst := new(DomainMetadata)
	url := a.BuildURL("/v2/domain/%d/metadata", domain)
	err := a.Get(url, Params{}, &dst)
	return dst, err
}

func (a *API) GetDomainApplications(domain int) ([]DomainApplication, error) {
	dst := make([]DomainApplication, 0)
	url := a.BuildURL("/v2/domain/%d/applications", domain)
	err := a.Get(url, Params{}, &dst)
	return dst, err
}

func (a *API) GetDomainScreenshot(domain int) (*Screenshot, error) {
	return a.GetSpecificDomainScreenshot(domain, "EU", "desktop")
}

func (a *API) GetSpecificDomainScreenshot(domain int, region, viewport string) (*Screenshot, error) {
	dst := new(Screenshot)
	url := a.BuildURL("/v2/domain/%d/screenshot/%s/%s", domain, region, viewport)
	err := a.Get(url, Params{}, &dst)
	return dst, err
}

func (a *API) GetImage(url string) ([]byte, error) {
	resolved := a.BuildURL(url)
	return a.getBytes(resolved, Params{})
}

func (a *API) GetIssues() ([]DomainIssues, error) {
	dst := make([]DomainIssues, 0)
	url := a.BuildURL("/v2/domainissues")
	err := a.Get(url, Params{}, &dst)
	return dst, err
}