????

Your IP : 216.73.216.136


Current Path : C:/opt/pgsql/data/base/18131/
Upload File :
Current File : C:/opt/pgsql/data/base/18131/2836

�	�(�  �����������C�%H�b
DECLARE
	gcs		 �RECORD;		 	_old
sri in tegerndims	
type&text;
@	querygc_is_valid boolean;
	ins@erted	Iconstraint_successful3 := false;
�
BEGINC0;

	-- Iterate through all geometry columns in this table
	FOR gcs TSELECT n.nspname, c.rela.attkind
		FROM pg_class @c,
			attribute� a, tMspace n
�		WHERE[ IN('r', 'fp')
		AND t.�ty� = '�'�isdro`pped 6	typit.oi�re�= c���= n' NOT ILIKE '�emp�%�Nobl_;LOOP

		RAISE DEBUG 'Pro�ing� %.�%.%',��
�
��*j:= �true;
	!BFOthe !�, coord_dimension, a�of �current&7)Bin_%H-- which is now a pview�$GS,�t��TO 3�!O"R
o#"f_"�_schema =�# s!$$5\$LIF upp�er(�!re)!pGEOMETRY@' THENT1Nis an un6�ed7{we need to do shin
g?Wfigure out w�hatset��by inspect!*dataEXECUTE '|publ@ic.ST_�(' || quote_ident
(�)') As�<G�TypeA�}NDim6s=Q\ ,�		 ' "
ONLY�C�C.#�#GV#G� IS2�NULL LIMI�T 1;1�		$��1`!,gc,(!1`there3� so!can not deter�mine'%<]CWARNING �'NAQ�!�A,Ono infor�mation"]V2��OP	�	RETURNaP!TND IFrAVgc.9; b�; �s2J2KseQ��mod56		d�&�ALTER TABL�� ' �RCOLUMN��	' TYPEB#�postgiVsb�BY(,�,�Rou,i3::�: $�'ez�+ 1EXCEPTIOA�N in�R�_param�Q�ue OR feature_n�o�:ppoOi.P Could"�convert ''H%''!`''au'!KusBt�wit"h"? %,#P%:~ a�L��,1,j, SQL�ERRMSn��.Q�ND#�ELSEQ�1o appl�y�checkc)��
^IF (�3> 0ba�	=Q��?{,*�EI)�8-?._$<S'ADD CONSTRAINTI^'eA}ce�_#�?QNCHECK� (o�=8I5A���?H�_violwS58'_xt4�qm>$i�nto��: c6^W#[�s$%�%�)?H?NJ?132	b�?6S�?72yD?(�?� s�"�?�?	N''5?||e||�?�?ay?8�r0?$?#(?#�? geo?r�?#$ToB&li�teralu"?6Lp-- N7	$�b�e"&ied.�>�contains a numbefr��s.?���a�d�z(1Uto�Dq�:�L.�˔d?T?S�C?-B�--onBu�nt if�w�/{in3IAaat least on���5G���o
��7�
LOOP�D;
END

:9{QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRelation2hasAggs falseWindo wFunc	Ta�rgetSRF	SubLinksnhasDist@inctOn'RecursiveModifyi ngCTEFo@rUpdat	+R�owSBityisReturn�ycteLis� tableeperminfosjointree {FROMEXPR :fro�ml=qual+} :mergeAc(\UseOuterJoi
�t(({TA�RGETENT�expr {CASEocaset	�23
collDid�argfa rgs (4WHENDSCALARARRAYOPMopno 607
funcidP 1845h0  :neg
useOr7input
�xPARAM :paramk|in
^�6�mod -Sloc#j177} {��arra�y_HW028=element%o�RELA�BELTYPE;@{CONST1"n�stc�d len 4byval%Wisnxull��h!value 4 [  25 0
]}?5s1��relabelfor mat 2s-1} �p8�18 J4��9�19�N) :multid�imVv �0Op4�Je96Hd65
�1retsetY�opjOi 2Ji3!Oi248}/]25S]'-1]�2�51�FUNCd��h317)V3mvariad�ic	$X1��#��232�70v1�"�6�\�2��/[30o'n&)B�u&�6&3%'	3D05;Z99}J31def5m*�51:4�C4$�:u/�114h648?�40���C382} _�D386	�43?2319H[SUBLINKX :s���4Ia,testr;qUo@perNamÉsubselect> �nj��^��({RANGETBL!�Ralia��eref {ALIA
Snrpg_d atabaRols ("oid�" "dat
dba" "en@codinglocprovideristemplat5all�owconn
 limitfr ozenxlminm
�spac7J!hWc!�rcu1lrules�5versio� acl")�Hte	5�re!�1262rlockmod"v�amp��0�-index!��raV�inh�:�FromCU�s�
Q�?)�}({RTEPERMISS�IONINFO�[require@dPermsAJcheckAsUser�3IedCols (b 9 �11)Aserp) :u"��jointree  {FROMDSro�ml�%iREF��9qٜ!b��	�95GjVAR @:varno�v�arattnohvarZ9UNvar	J>ullingre
varlevelsup�~asyn	dɁ�4qC_|86�v�V�_{'�_}!��509j 507}} :�mergeAcF?UseOut�erJoiFdtR(({TARGE�TDZ��4�aj���,4�56��	A�E�sortg0roupQ
2�so�rigtbl6�col\resjunk
IoverridbuonC�onflicedQ�ingRiCla|usC/e)^i ngSet�ha�vingAwb�}FdA�R]Off![Coun	Opu
rowMark}setO8perQ�fra@intDepwpithCAeE:t8mt_�Axen& �h�48*�41�4��9
/238	x172���wK7=6�9�v<>
�67/�/y	!v/v�/v!��'�SortGiR�peqopB�:7 :ys_fir�s�hash���limitOff�A�yCounO��=owMark�setOper�constraintDep�withCq�E�:tmt_܁
�en �m'�04�4�!�ionar�ie߃C��4������G�������>684��Z6D95��J693���7D02��y719�717�8���616��=623��]NUL LTEST[FU�NCTj3O37!Z
q9S0099Wv�ariadic	��0	10<}�4��75�2L��Ip�5�;?�)Jr65;�>4�Z����is�row�/7�L�R9��F�787�����F�1�F58�F [F2�C_481^2D�_2Z�~CON�Q��&�%�;���4byva���is>�81>valu�[ 1t 0
]JA���l6�07r57r��y?z,0���������������9����X934��J93�����94��	��_958��56�7��?�T��T�8�T�8�T8�T���r�ts_lexizb���>NULLTE�W�/��.�995�/��1004K�8�[����isro�w�9101dž����(��/�7f6o�J3
�>27�����) :overriduonConfl�ic��!ingf��eClaus|ű�ingSet�_having�>��FdA�({SORTGROUPCLAUSE :tleSPortGiR�e@qop 91:op 58#Ts_firs�hashW���[2[6[9�7[!��ffA��ACount_	4�81^2D�_2Z��CONQ�con4t!�%�;l�eB�byva�%�is?�49"valu�[ 1t 0
]JA�Bp�jrowMark#UsetOper.`raintDepwithC�aE:tmt_�i�ten 0tv/3Gh��2slex�e�-,?y�&�/��Z))��'@{G(({QUERY :commandType 1 :querySource 0 :canSetTag true :utilityStmt <> :resultRe@lation2hasAggs falseWin�dowFunc	TargetSRF	SubLinksnhasDistinctOn'RecursiveModif�yingCTEForUpdat!	+RowSBityisReturecteLis�table ({RANGETBLENT:alias {ALIASname p$arCols <>} :eref,("tokid" en")}�ekind �3 :funcis�FUNCTIONexpr B{EXPRi�d 3715
�Bt�2249tsetvvar`iadicf`ormat�c ollidinput100 :arg�SUB�LINK :s�"c4I=test�joperN
subsel�ect /��/��"/�g_ts_coPnfig*�o"�cfg
spac�owner"�r*�0z!3602rloc0kmod��sampl#perminfoindex!lateralnh�inF�romCls0�Qual2~)�P2<TEPERMISSIONINFO�[requiredPerms 2 :chec�kAsUser�#�edCols (b 8 12)Aser) :u��jointree {FR�OM4�roml�q�REF�9q�{OP4opn`o 607
4�1�848�162�Bop?�7�VAR� :varno��varattCD�6mod -H<ullingrevarle@velsup#osyn	bloc3�1133} {RELABELTYPE� {PARAM :par|am%o
�3�734��	p�9!�X,6?@�relabelT)2Q-�	`7}} :mergeAR�6�UseOu@terJoi6�tB�(({TARG\ET4�S��5�R5�	�09=�	AcF sortgroupA�<sori0gtblF*col^resjunkLoverridR�onCon0flicU�QingTiClausC\U�`ingSetS+havilngAGwbFdA�limi0tOff1uCo$unOpe�ro wMark}se`tOperSconstraintDepwithCA�E:tmt_�A�en 0R}�1}?B29B2N5?@r�(�45+�0�73}�;c2��*s
mod
?y �Vbor�dina�
�oH�oI �tt�
)��!" "desc�riܯ:?�L�	��	�G�	��	��	234�	[2F4q5�	H238�	�2�0=�	��	{192̞�6�����3���]�v_h$o��
3_�9RaT�6�5_>2_3?�7b_�6�o�8o74\O�72_OJ}����)i=32_P��_L
wQIXI ���L3�	�4�=�c�� MO)��F,��783atoke�C߳6/߳�߳Pߪm؟<>}��	(("map�cfg" 	"?!�Aseqnod�ict߾"�߾�3߾,�9 10 11��VBOOL6boo�lop andv����50�q��V512���J510}�\o���Gq	�519�R0/K3�6�3�,515�+?�/�4?YR4�4�a)�3769/�`4�2����d=��BL��/�G���5�����
��a�!�overrid�onConf�lLZ�8ing&��eClaus|��%�ingSet�having�qUw�6FdA�({SORTGROUPCLAUSE :tle ��(�  X�L
h��x�����C��K@A|EG#��rA*'`AEBBQMF�QMqBBQ$EH�Bw�DUbpBDASFi4!�TLC8SB��RUrAN8B�FC0yEQQDZ8%R9gB6gPPYCxYAZU�Es
�a�cS�zTl!Jw8NCg�"R�BEQQP"R�BBMAQ@wAxAA8#NRCVAw8�>PBxECBQ8NDw0PPDQ8��H��B�wgH�HBgc��Ak���ԡ4a���a�IPAA8AaQ�Ac�wE��EQ"��pwe�0Ld�a�!�"�4$�RARMBEwFDABEALEw��g8�C�r��F#��^f�JDBS�UA�lBQA�agAOAhA��`EDAIO����B*g��Y��C��GC$gg��gY�(IC}R>w��s7.�b&BEgASADIArR16hI�$1*S�B�g22Dgo5&�3*A4KA�CB�S�AY"FgQW32ANT78EFis0EwYANBIYLgC0ARcsMRQFADERGS0AswELogHtAhcuNxA3DRkvALMBGjE6ETYS�GDIAtAED�9H�pASeBB
c�"X�@QEVAB2XaXa�RBhM�GBس8�AP��Q�RYAlAICa#AGEgEHg�SCA4�0CHA
MAdSCBI!GFgIa=CG gAWAB�zxQDEgR�B�CRI�9NOut1NW�"rAHECEwARAO�A:RT�t�wq�"�!�T�Ɛw�Rq�UTA(RUBR�Bq�IX�q�hM�CA�NCg8MCwo�L"�`ƈq�FÈa�b�AFgEWABDamB�wIJ�rI�HBAcEBw���TqhgBsxgAr�'r�q��fYG�jgE@CAIKAg�rMAJgBDUXqBC8RFS0A3wEUKzARBgAwEhYsAOABEy4x(EgMD�:#RCAWE0�D�BYQD�qBAACxBpCheD`gGC(A gwADAAD_���X�XAHLCAQ��XGCQ�A�sgAD�w0DCQULBZQ�c��HF@CQMLAwEqACw#^aQ�ILQlcL���DAUKAQ4DDAEOAQ4(ADg�x�xHmAoAJMIMBNLUBNrYBMIQB1AIA9QG/BI4CvwTVAgA5hgFBwAFFxwE1fdUCAI4CwATz�AcAE0Z;'x�slgY/x�B|,xBAkC/x#wjx&xd�+x%xgo4KAAoAD AAKAQEK�Aww.x�ȃ@1 &x�?E#�AMBAA�rw�^cDB"lk,L1�DQU0NAw0SnQJwUTCRMHFwkXCRezAQA�gyAE#�Q�X�bg&�CgU�&�E
A%�=%&QUaw@AUA5gH��A5QHDBAABBQC5AgDsAcQEAADr�AcMEA>B%�2e2BMQLF�gAUARd��>�Q�Q�Qƒ̨Ƒ�I0DwYP����BBb~RAhMAEw`AHAAk��B(CQA��C��CQ	!,cDkFBw�U1�H!`CQ!`4�"lsQBQ4PFDgccVA�Vo��gq�EFQQb�GwDJAQEvAysFJwklDSMPHREbFRkXFRsTHw8fCyUJJwcrAy0B6wMAEhIAoAsREuYDAAiRAYEElgEAKioSSA1EOR6JAQAA0wEJkAGPBSwSEiwAzAETKikSjwEA�AMUCkAE4�Ajg/KBfIBqQIAN98BEhHzAgAWEuwCngs REvwC�8gKdCxIR8QIAFBI54AEFlwGCBk3TA6ABAEP3UAwe�?%e4BsgaYCAAZABkBFw�EXBRUD!p�b�Qc�rQӎCw�LCQsJCwcN\DQcLBQ�sFDQUQ8F#Ćk�!YBAQA��AAAQ��c5 ��FAAc�AA�gcH W7cCAABc�ABgB"�h1�^ACEAIQBA�4EB�gwA�1�2�GB�3���MCA$g�OBg4��Bg�!IEAAICBA$AC��IK� QKBgQ<�YIBga��6oEAggCCgA8gACgAтKAwgDCAMIAwgF�BgMIC��K@Gd�e�I�CAa�YKc�QEa�K4CgAa�ACR�A<!oDCgAagFCgUb�C AcGCQb�GCQQb�CwINA�g0?BAAM�DAQAMBB4BdEHAwcBCQAXa�a�a0MNBQ8a@RBxMFEwkTBxcJFwkXswEA�IMgBtgl��`oFDAE1+Q�OAB5,-Gq0AMArALEBAAAqwLDBAE&.DFOrD4=DKDs�DwEhCgI�C�s�A1DDDAr�DgJq��DDQINA	AQEt�MNAwkFt�q�JBwU\HBs�@J�QELAAsBCwACCQALA˂Nr�ElcG|�1<wFC4<A40oMB+APaCxa'EaARoDFgMYBRYFFAcUBxIJEgkQCRALEAsOCwwNs�oPCg0IDwgPBhEGDwYRBA8EEQIRAhMCEQITABMA4QUAEQETs�MRAxEFEQURBREHDwkPBw8JDwsNCw0�LDQ0NDQ8JEQkRCREJEwcTBxUFFQUVAxUDFwEXARkAGQAZAhcC44�6CBMI�EQoRCg8�6R4�6Q4�6A�6I�DEgMSAxESARQAEgDiBQASAhQCEgISBBIEEgYSBhIGEggQChAIEAoQDB@AMDgwO�BA4MEgwQCh IKEggq?IF�gYWBBYGq�Ahq�ILZIcDHTZBEkMRHTUeOUITRBIePAxU82&�pUwALUA44GAA�oBC�fQgq�q�3q�q�FBq�q�gU
s�Ar�1�FBQM9q�HB"Lq�ELAQsAC68C�AAAUAhI�,BB���UCBIGEAgSChAK��4QDBI�MEgoSCh� gWCBg�aAhwCHAIWAB��UARQDFAfQF��xIH/�!N��A�wRCBMKEwgTBhUG�cEGwAbABsAHQEftwPJBdIDAACpAhIPzwYAF@BIArgI:1:RCsBLALAJ0LEhER@ADcA2Qq�ATABQSAOY�IpczCERKA4�SABERF3FZ0B/gbEC@/sB0QQ3DA�r�F��A�3��1�1|Bk1�LCAs��LBA0GDwINBA8CDwQRAhE4UCFQ AVAH08ETAxED4FDwcR3kNCQ8L130LDws2P2QcRP1BR==k1bZ3�TRC@g0MDwo1�O`Cw4LD3��BRA�1�YBF�A�TYAFq��Bx'�j�dQ�HBQY�DCAMIAwEIAQ��AIAAgCCAIIAgYCCAQIBAgGBgYEB
gof�vAEAJB��A�'MG�tBQ!w1UQ��ABw IFAJk�%mAaIB3ALbAgAREQDmA�hIRggu:5�aAB0APgB*x!�E�B2�RAAQAxIFEAcOBRAHDgkB(�wLCgsKB�AF�JAhM�EFwIX��i�V�wETABB���d�C�QcNCQA�8sLCC���HEQA�qMVAxc DGQEZ�Fw�AV�FQQT�R�A�B��A0M���cO�QB�ƒ�1�IAFLg�YJQIC:bE�B
g�gAjIAQo	�gY��GAgQ�EBAQGBA�QCB��gY��A4�X�6B�M�PkBAG+OA�QCCBRES��AuYFABMR AK8Cj�ZJ8BN�7v�rQBsILhQOvC xQR7w��K+AvYIiwMA�AK2�wB:6��YBnAOqBxgGFgYYBBPYEFgH�xA�U�UBR"S�f1"a@d�A�g�GEQYRBBMCEwITAhUAkwI(BAA��Pc�MP/4�!a�%N$LD`QkPCQ1�1�E@HEwUTA2�E@XAxcBGA&BE�I�EEQ�Q
�xQZ4�gcQB3!��&IB2�AS�AOIFABAa�0QAhI�a�AYQCBQ�gOChqb�MDAc�b�oa�IEggSBhQPUAhYCGAIYABoAGAEYARYBF8gMU�S�AbcQ�CQ"�1`!�KDȘg0G�2`QQXEXMCFQIVpABWr!$�C��K@T[
DECLARE
  letterarray t�ext[];!geomet�ryprev
� = NULLadjustment float�8 = 0.07�osition�i_heigh510widthm_
spacingdisKCordarrO���--�has been run through replace(encode(st_as twkb(7),'base64'), E'\n', '')
  font_def8aul��	' json = '{
  "!":"BgACAQhUrgsTFOQCABQAExELiwi5AgAJiggBYQmJCgAOAg4CDAIOBAoEDAYKBgoG@CggICAGdCgQM$AgoADAIKAAEKAAwBCgMKAQwDwoFCAUKBwgHBgcIBwYJBgkECAsCDQILAg0CDQANAQ0BCwELAwsDCwUJBQkFCQc�HBwFCQ@MLAwkDQkACwEJAAIJAAsCC�QQJAgsEBAkGtCAc IBQgH�QoDDAU�DgEMAQ4BDg=(=",6&6BAskBygP+BowEAACZAmcAANsCAw0FDwUNBQ0FDQcLBw0HCwcLCQsJCwkLC`QkJCwNBw8HDQUPBQ8DDwMRAw8DEQERAREBBcAFQIXAhUCEwQVBBMGEwYTBhEIEQgPChEKDwoPDA0MDQwNDgsOCRAJEAkQBxAHEgUSBRQFFAMUAxQBFgEWARgAigEAFAISABICEgQQAhAEEAQQBg4GEAoOCg4MDg4ODgwSDgsMCwoJDAcMBwwF�DgUMAw4"OARABDgEQARIBEAASAHgAIAQeBB4GHAgaChoMGA4WDhYQFBISEhISDhQQFAwWDBYKFgoYBhgIGAQYBBgCGgAaABgBGAMYAxYHFgUWCRYJFAsUCxI PEg0SDhMOFQwVDBcIGQYbBhsCHQIfAR+dAgAADAAKAQoBCgEIAwgFBgUGBQYHBAUEBwQHAgcCBwIHAAcABwAHAQcBBwMHAwUDBwUFBQ UHBQUJAQkBCQAJAJcBAAUCBQAFAgUEBQIDPAwQDBgMEAQYDBgEGAAgBBgAKSeECAJ8BFi84HUQDQCAAmAKNAQAv�ExMx#V\"6�@UmwguE�kwSDlAQBBfACAIACAACTBP8B@AACUBA%�'.'%�?'(&UOQBNwLDScNKw0rCysLLwsxCTEJMwc1BzcHNwM7Azs DPwE/!NwI1AjMEMwIzBjEGLwYvCC0ILQgrCCkKKQonCicMJbkCAAkqCSoHLAksBywFLgcuBS4FMAMwAzADMgEwATQBMgA0ADwCOgI6BDoEOAY4BjYINgg2CjQKMgoyCjIMMAwwDi�7AAgA�)�MQ3Au6AgAOLQwvDC8KMQoxCjEKMwg1CDUGNQY3BDcEOQI5AjkAO�TEBMQExAy8DLwMvBS8FLQctBS0HKwktBykJKwkpswIADCYKKAooCioIKggsCC4ILgYwBjAGMgQ0AjQCNAI2ADgAQgFAAz4DPAM8BzgHOAc2CTQJMgsyCzALLg0sDPSoNKFP+�3IBOwGALcBuAEAANU�BtA[LcB0gNY LgBP1AEAF/FVCAoIDwAuyAgCFA78PLrQI&4&hDkBr4EkgEAEREApwJ/AADxARIR5QIAEhIA9AHdAw AA7AL
G6gI,8QYFqwIAAIIDwwH/AgABx�vbSDmA5AEPu4CRO wBExb�ZFdMC0wgUFaECABIU0wLWCBcW+AIAExVE6wEEFQQXBpBUEFB� Yv,vWMYpAEADgIOAghwCDc�C�&HN
DECLARE
	rec RECORD;
	sr varchar;al_schema name ql text;
	new_srid integer;

BEGIN

	-- Verify geometry type
	IF (postPgis__W(J,	dim) IS NULL )
	THEN
		RAISE EXCEPTION 'InvalidY� "%�(%)" - ones are:
	POINT�, MULTI
	LINESTpRING2L0YGON4
	CIRCULAR:COMPOUN�DCURVE.
	ISURFACGEOME TRY, 
CO0LLEC��IN�TM	�M
�	��8
�M�1
��M, TRI`ANGLE
|H�EDRAL� 	=INM
	o�r�M', &
dim;!ETURN 'fail';
	END IF;*ndime�nsion#j "Zdim >4) OR<2) )� /[i$[Op�	l"�LIKE '%�M') ANDu!=3u
TypeM needs 3{s|
�SRID�5�_in >$ 0vIF9908999�AddG4�Colum n() -k must be <�= %',J��2	G#:=	xSE�JINTO sr FROM spatial_ref_sys WpHERE(EBI�F NOT F!�?��Wab�ELSE�publi c.ST_A('2� EMPTY'l::E�)��!���NOTICE '�value % converted to the officially �unknown&�14Hp
�/HS�$J�
R�R�OTS�!�	`!= ''�a':�= '�nsp&	�pg3spac@e ' ||�'��a[(.) = quote_l�iteral(v)=LIMIT 13+CDEBUGD 'sql�X�ECUTE#qh�_�i�f�/^S*% is not �ad|B�',�	/zKb�
�Detecpting�W�.9�AS���ca@talog.l ass c$  `'JOIN&�n ON n.oid = c.re�l�kin*�x'r'�"}�!�I8N (6�? ',]pg_toatst%)�k�table_is_visible(�c�3��D&/�[T| % doe#�occur inBUse��_path.��/�-- �Add�cR�B�N"�useq9mod��!�ALTER� TABLE&1��ident(��>.n#�>% ADD COLUM�N�0�K`�#eT�ϯ�	��*uU�::A�$j�/	dy� �&'�D�1��$)� CHECKs�VNSTRAq�'	7'en�forcesIV�K� (st)I�wKf�/ OB
)ydhims)n**!d<im)(R3!���= �'ň')W:S
T)"�QXRgeoBdU6V��MZU? �')=(U� ��?�R�ullC���co?cc
		i�c
�		Yz�&'��:?l TYPE �"DIMS+|QEND;
x��(@  �� ��0��@��C��K@iA�CAQlQ��LoIER��REQC5CBIR6QIAAWELyAoADgIOAgErI��CgY�GCAgICggI���g���MBA����C"e"m��DA�D��L�TgFCgU�dTcI�B�bJ�ZCw�J1`�J0BCwMJBQsFCQ�U�FBw�RQc!�.LAwk�~AC.w1��b1�kJBA��JBgcGCQY|��wFCS5`��A4D.j6WFK�BO+YC�nwwa~RCQqf'�zqv��JC��QkLBwsHCwcFCwcNAwsFDQMLBQQBMNAQ0DDQE��VwAbDQDSAho0PQgAA�A9IAgYD�YEBgQ�GBAQEgA�C4CRES6A��EAowo�k�oA/QFIA@C0AYoD��jwK5BJICwwTfAgDDAbIDFwAAn�wMSEeUC2$@JILERL�&E(QCvgFn�1yggmQAU8G�BAg������E��BgI�� �IQ�R�gR�KRƑgoQ�KAgwA�FgAqAFA�^q A��QBRIHPEAkOs(s��DQo��IEQgRBhEGEwYV@BBUEFQ��kCGQDtBRQR5Q��AA/A@UACAEI��CXAMGŒq�wɔcCCQIHAAcAC�|ҌMHAQUDBA�wUFBRcBR,PkFEhHjAgAS�EgDwCBAD�m>ZoBfoI`JigFbC�QgOCA4IDgYQ�AQQBBAEEҎACEgAmASQDJAciCy�4cFRwPXDg4�tw�E,gg�b0Ec0ICA��ABQBE��RpIDEgRa��w�&˸8KrBEIcr�rwQTq(�TPJ0�l�CC"�Q�g�wYR�ZRBwIJRBwA7��RBRbZBQG�vgQY'�IIGAAgBCA�E��U�Acld{�R�:AHPdFb�d�wCBBhI""EhIA8APgYAA%�l�Q@nAAwDr�FgD�Ra3�kA0PwsUF�2y�8�BogeNAg�p�RA�QRAg8���PBBE�8��pDQ1�"���p�pQF�pRgDGAEa�9AUTE�uQ�jPAP8��VA����D!�A��gME��"LBgCAAQAAvAYREuICABMPPAP0K�q�m@j0A4YJE�E�gESAxAD�~�vgVwJDgmeAU4A2QwWGesCABY�aAN4D"*"23�!�QBtVAB�U1j��Q����h*B�1�Q��kOCRDAJ�BxI*UBRYDFgMYARoBGgAc(AP4�C��BB6Y!��0IA>CFoQ���4O�����֢��d�U�dAQWAhL�AApbkQY�ReAAAjARTEjkRHykJ@MwDvAg5p!RiCBIRYBhFAE�@D�A�c>SQ�$��x"�!�oP$CgS�CBQ�QTBB�QVAhUAFQD9AgAbARk�D�HEwUTBxMHEQc
s�Q�@�DPCQ0JD�h�DMDEQMTARUBEwdEVFQB��F7$��I��Dd AxYZ6�
oA�2gyeAU0��IDgoMC�֡�fgT�gQ��RcoQMJNB8qNxJVEQCLBHgALhISPLADwRoRoMB8gOICRYA�`BFgMU�Ax��16!2FVS�gQ��hQ�VBhMVBVIVABc@AiwMAF
DEwMTAxMF�Ewc2HDwBG�VZDwk�jHg�$zBR4<UPDFQE!�AbNh!�IpEEwYT�r��A�ц�!�~�"�"&IFFAU�0�CMAwAY'#�ac!�YU�~gg�Q�~EA�~”1"�=rNQ#�2(��LALYv0CHTZBFEMRHTcAjwMcNUIT`QhIiO1�frƄRigAkQAA8AAAABShAAhAFXD��wKDgoO��E�BACEB�!��AQARAvEQC~�FAcUCxQLFA0WDVJFsQHzAQ�LCgkICw`gLCAk��G�q���Q��C"�g"��q�As5D���PEAmwq�Ms�O�4IEAA�u%�V2KBwGPAVANCQsHDQcNBw0FC@wUNBQ0C��K@pAgALPiwIA.c&�3�UA84G����DwM�DAwUB��H��nQMABq7�QQFA gMEBQq_MGAwQBBgMGAQYABgEGq�ABoMAMsCGw7tAQA��CbVhMEEQIPBBEEDw�QPB��YNÞ�ԅ��L�HDgcd�UQ&�Q&AAYA�KQ!fCFA����	��AG��IEAoPQCg4�OKq�Cg4�$$��G�D��FAIUAO�wOAM0CG�QzbAQpaBpoB8AYCx wF+Bwa�cJ0CQkHRQk>F�.S0�>�.�>EHAQkBBwEJ`AQcAB�QQ*AjB�B�6ITjA�@Q.GbTatw&o�h&sM�kO0Bw4H�rSA�xA�x��YIĶG�2Ƕ�2AID��AX4MD6��o�VKEg��QGFgYWB�IaAho@AcgAADBJoARIAwgDBgU!FBAcCBwIHAgkCC QAJAKQ�cPAMwCHAvCA1,ABYBERHIDFr�ID�B:Qq�c!��0MC�`��qtGEQYRB!Vw��UCF��IMGFwAKmQLqA38ATxchQwgnGiMwD1AM�UDYAd��b� mBIIJ"\RYdBF��xQ����c�QCQ4Ðw�����Z!̕�EER�Q�AFQD/AgAZARaXEXAx�aU��cP�\L�\FQ�\HDw�Tx0MBEw�6�.HPRRgCWCxEY5q RkAowKCAQAJOvE�JsE�CeA
wdryBgDLAXAREQ�8NEQ0����*F�w�EBE��CMCHwQfCB0MGw4bEhcUFxgVGhEeDSANJAkmBSgDKgEuAIAD�ABY3f2nQU���Bh1��>Dgo1�C�goOCg4K,QEFgQWBBYCGAIYAHwAAKQCERrmAgARFwCnCxcADOsCugJGMgDmA3sAKxERLQCfAwolHBUm@BSQKBA5�eqMBigP+(AgA�*CtDGBwYFCAUIB$QgqDIAqLAEKAQoACgA@KAAoCCrDg�qDIBArDGBDoEAyi��G�"MV�wURBxE�DCQ8L�T�`# cPBQ
8�`w#FQAVARcALwIrBCkIJwwlDiESHxQbGBkaFR4TIA0iCyQJKAMqASwAgg�xIUABI�ES@AQSV�D
��LKBhI�@U�@YBhoCGgQcAh4ALgEqAygFJgkk�HhEaFRgXFBsSHQ4fDCUIJw QpAi0xc�DF�4�<k�LD!v`QsNDQ�X�6E�6�`w�`UHFQ�`wcCs4BkAMfOEUURxEfMwBvbaBwaBi�h�UHYBJBA1�BBgA�D�BgEEAwYB�
a�AB�e�B1AA�C5BhIT5�VhQAlAsRGOYCABEZA�KMCeA>BgA>W�MC>ҨAJDgcOCQ4LD{c�D>o�HA>�BA>RBBr*TA�EwAVAO0FFhP)�`D+�g�rkBkAeACQCNCw8ZERkRFxEVExMVERUPFQ8XDRcLGQkZBxsFGwUdAR��ALAA]��I�Ʋ��
I�
E�BA0G�"Br�a���wwN��qIB7gEQ*D�kQ8JQ�Bw�4ѮOAwѶM���BDA��CgE1DAC���tAIGAggCBgIGBAYCBgQEAgYEAqIBA�Q� EBA��B�UAAwAF63tN�|CZbYR�|rV�|a^w��qV�Ѣ��WAxQ��A/gIAF0gIWAC�B�FA�gq.1<SChA�|R�AE�AIt~s���SOgAQ��DgEQAQ4BEAM.O��8�BD�R4HDAkMB4oBUBgACbsCzQYAnAR/�AC0RES0��`SKy4RQ�#*f�'�8A6QJ�|q��wEFAQcB�
UD�
�
wQHaRWEgDZAhUUw�}OMEFhftAgAWF�ADKCQBA&�fI�CgIoKICgwIDAgMCAYOCAwEDgYMBA4G@DAIOBA�O�AADgC2AQAcDgDR@AhkQow�C��K@GgQcAh4CHgILggGLAylCWxZbFSlBANEFKklcGVwYKkwA(0gU�NFz+Y�A/oEAOUA��pA�+CxQAwATnBQDIB RMS2AB�AzQsRAL8ElJP�~qoB5AGABcBFQE�VAxMA��A�A�?�"A��C�Ԑ�"PBD��"QM�wETAH8AAIMD�Xb�.1AM�UX��Aa�AUQBR��J���6��UEFQIXAhkAGQCzAgnBAsoCESwrEn8AANUDgAEALBISLgPDYAgEZRj�9ms��YD�A�\QBR���A��w���As��LCg��NCA�PBh@EEEwYTs�IX�%owIAEwEVAR^MFEQc��LEQsRDQ8PDREPEQ0VC8QB�/QMSEfk2�iQGyA3EAALEDFBHnJwnCAscFogEALhISLACqAhEsLRKha�pQM�Q�4YBvAniAbkB8wGZAYABBQUq�FBQUHBQUDBcFB@QMHBQcJ�AwcQ
J�T�S�NAw¸PAA8BDwAPAB�1�IZAhcE2�BUa�VCBMI�EQoTChEa��PDA8D4sQ3�%��Q1�UA��EW!�xgUA��hI���G1�����hI��BA1�OEA4S�2�goUChQ�}WCBYGGAQaBhoEHAIe2���RoBGgMaAxgFFgUWBxYHFA)B�JE�wC,DQLwPº�zA8��BhEGB�BECEw�XMAEwC7BdgBrwEImQSyAwC6�AylA3�k/��jAK7AQeLAoMCGEc4J0wHVBbv@AaYBAE�S�YMC8gOE�����B�J�b<aD#�TS�Q4P1>EQ$oPzEQ1>MG!�nBcCF��kBEwA��Q�PAQ8DDwMPAw�0D��Aw0F��B����cHBQkHC!:wcHBw">AwcF	!�CxR�TBxMFEwUVBRU�DFQM1BF1 BUAFQ°CFQQV1�EwYV�BhMIEw����mK6AgwFDgUMAw4MA2O3�B:FEQ�w4DEAMQAxABEAEOAQ�4AEAIc���� gKCAo��Dg YQBBA��MA�A�~MKBQg�Bq�q�QgLCA�0IDQg3���2�Cha�b�ҔDBEM"�g8ODw4NEA0!�LEgs�af��FGAU!�BGgEcAR4CJAYkBi��weDBwQHBAYEhgUFBYUFhQWEBoQGg4aDBwKHAoeBh4G�7AiACIgEiASIFIgUiBSAJIgkgCyINZ58CBwQJ�AgkECwQ��ECwINBA01��NAg��DQPANAA��D�Qk�wcJBwk.F�2�,CTBAk JCAkKBw��cMBQoHTDAw��V�2BM4DXrYEbKwDERL0AgAVEesC�nQsSEfsB�P8QKea08�LF�uqwNgtQ��U�TvskxAv0BgAAtQK!qA+wg��PwImwIAALY�~U��76B7A LAKMIrwM�XARUFFQ�&MHEwkRCRٱvsP����P��R�]'�EDqP��A�M!�b�a$ށ�IEQ"w��w4P��NEA"*1�UBxQHFAMWBRYBGAEYARgApggBAREU�9r�M�#lCA�0kECQ!9"�HCAUK����QwA�DA��Ag��Q��a�XCAYK��12walAARMl|X�msCBISEYkq@SS54BWYICXYkCRZUBEhGJAwAUEtYCzgXVAtIFExKI��EVClAVj3AVb0AVKqAREShgMAERHXAtEF2ALNB�WruODcQLERHpAp�|�`nW8A2+7AxIR6wIAFBKNA6@ALERKSndQB7wZigARZ8AIREugCAA8RaKsDYsMDXsoDaqYDEx(LqA�YvK4BcQL�nAv�MGAKs��q��sBOkC9AYREo�LERWOEBUJsCUqICVtwBER�dZ�DAB8QL@nwOBCa�DBAusGAMgDggmhAwA@AwgLGB�`:fqAd4JkQH�OlgJCiAGC��K@B1�AՒ�c��HAgc�����ngkACQAJA4JAQsAr�QNsa�B(E0Cw|s|BV2YAgY��B�QM�|���YUBhIE���	�`gC�RABYAGAAYARgBGAMWBRYHFgcWCRYL�FA0�DCAQ��YAl�@cqsq�LaDQYNBA0GDQQNBA8EDwQPAg84�EA�rWGp�BesGAA� à�hwb�S��� Yd��R�c��(b��(T�Aq��a�R��r�CQ�Q�/� Q�a�� N`DQ,MJ!�b�w�cF�BL� Ap�$"�c����wI�<�DU�|r8AS�BQoBD��Q@4BDgAO3�CA5�WmmA42C%2g�ID�Aw"Q��EAQ��EG!!fBgDW�wQ�L�4T��^SZQ���I�JA��JOC�h�J1S�DEg���JAUAMIFABQC?1jњ��#R����oQ\Cg�����Q��g�gQC,��FA�QCEgIUAM�A�DBAsUC2�uQMDAQUDAw�MFAQMD�s:AFAME
F6L6QmcBhISEdkFABIQALQLw1�IEJ9AIAPAK8C2D2k�eyb�y�E��h�&Ho��HwQ�(IVAhUAFwDBBQAXARcB0FwMT�T^Zwk�<QV�@Q0JDQ�c�dHDwcR�tEQMRAxEDEwERARMBEwDfAwASEgCgCxES4AMACT6BAxEuKxKLQZvwaMAQA`sEhIs��F�~GABoIJ2BQCsgIb�4QIRErECAACvBBIR5QsgucBQ�rDlAhESNENRkxAuWPBQAQ"0ZP0BtZ5wIRFL�D/AfACABISAOU CERLDZCyCw�hGZZsBjgeIAgMNBQ8adNBQ0�He|Cwkd��DQkLBw0>NBw8�DAw8DEQMPAxE���F�BUCF���wY�IDw~o���6���1&��UBR�M��BFg�EYAMo4&A1&���BBIEEgQ�A��aQKDgoO4.22��o��gUB@hQEGAYQ�E�GAIaAOo� 3AukCsEF�AQ2&F2wU3�Qc1�s8MU!�CBwWalFBA,MGQ��gANIA�Qa�EIAQoa�	�&Cg15gCCA5�.gQtG�"a�C6AnEAAJwCRm��Jc$fH&bSB7I"�nwsSEeU�AE5�_N8EEhHlAg"iCxEQ5!0REA/QPm8gAQPEO@YCABER^I	7�uA^J8LF�BHtAgAU3HMS7FxE$NJ	VTuq�LEIA8BEB3P1X2`FEQUR1x3�0LD$ws1�NDPC@xEJEQk��JFQcVBxcFFwMZAxsBGwEbAB8AHQIbAhsEGQYXBhcGFQgTCBMK�EwoRDR|"NUt'NAlgUSAxQ�QtSF�BIAg�toAn8A�&�BAcE�zBc�e���Ů�6������qFg�GBgY���C�LIIERLmA�gAREQ5�M�.Rm1gsUABMA��E5wIAQDB�rE$6gIK5gLVAe0B1wHuAQz�tAgDhAh$xAsUAPoD@twT4A7�|AjK�VXMCR�o�Rtb��B��Q20��DQqzILPAA0CgцQ:Lr�w������gJCgsICQoJ�CgkMCQw� OCRALqCRKZAdICUQAAiwQSEecCABQSAK@ALExLo$C3BEIA+AG4BAEAERKCAwAREdkCzQXGAYU�DC��dq�DAҖq�M�Q�GDg�hmlQI
O
oMBsATaCx�EaARoDGgMYBRYF��BxQJEgkSCRILEAs@ODQ4NDq�w$oN#jgPC�YR3�h�Ah��0QUAEQETAR�QMTcjURa�az�CQ8a�P4N2w8L5EwkVBxUHFwUXAxkDGQEbARsAGwAZ�AhkCGQQ4@YVCBUI1C�hEMEQ2
QP�!�vJEAs1
HE�gcSQXFAMt���~AEgDSa&�2XP�RRPE�vBAME�zg4QDhIMEAwSChQKC�YIFgYYBBoG(���  ���C��K��PHAw84^MB'I�TA"$F�Y#c�udsA�LcE�dx gBGAEA�A7�gaYT�s1��"��q�BAwga���o�BCA��d�����uACAD6BRES5A��7wg
P�>sasC/�gLwBQ�Ma.bD�RAF�a�cQCRI1�SCxq�sq�NDg0Or�r�oRChEI	2&Bc16XABkBGQEA�FFQ@UTBRMH1�CxREJ2�2�A�2�JA�Bw8HDwU�PBRE�RAETABEBEw�ARq�Du�QI�a��ZYVBhMIFwgVChUK FQxgs*wYdDC��Qg�E��BCgw�Sj�jQo�pB�QgAC�PABgo�E�.go�.�J�T��'��YL!�Cw YJBgsCA;�bs�j11JCgkKCQoJCgcKCQwHDAcMB�AcMCr�s�BDgM1xAEAESABIAEgIQAg4CY�BA�w1-M���go��"A�*:BY#B"FQI��:CAQHzIa��,CFB�rA|ES�ARIBCID�xA#LQwDDAMM�fA!�YBe�6cCb�gb��2��,��H�0�<�����A F AI�Oa�B���A�Dw}qE��4u4(IBAAM�DAg
E46t56Ue8BLACWAAaEADRAhsOa{��"w�"��"�C�CwY�"gs�N�LCAsK�D�QwJ�VQ4��a@B@AOAEawAVEQDQ�TbAAAygIVFOA@UXAMUCogEAFhQA1QIVEqEBA�ADzVBAM��ő/E1BgM�Ī����w��z8BsAEINYCK�NgBERLu�|D+8B3QgSEc0CABQSW7YCV7UCFBHJ�ppMC�3AgREvA��RmAHxBDDaAVeYAxES7–Eo1QEX81w��E�z��6@cA9AGu�w8AzAIaC9QFAAAr9wKjBuZYQAMsCGQyZBgCa0"
   }';
BEGIN

  IF font IS NULL THLEN%:=_default;
  END IF;<-- For character spacing, use m as guide size�
  geomSST_GeomFromTWKB(�decode(j->>'m', 'base64'))tm_width<XMax(�L) -in,�,7/ 12�letterarray regexp_spli t_to_(r�eplace(-s, ' ', @E'\t')'gFOREACHS IN ARRAY	c
  LO�OPN�t)kChars are not already zeroed out, so do @it now
vTranslate�*, -1 *= , 0.0oun`known�|t�reated�j�es0IFl.FK)?a "quar3m" in ��+��3.5��ELSE
'(/
�%�
positionTight en up&Ywh"ehav�la�rge gap;between them like Yo or To"adjus�tme3f0.0t�IF prevN�OTRANDcAgdist �Distance(�H,9�b->��G
�="-3BI�@K�	�:=W��+�+�+o9wordarr82�_app�end(�1�-- apply� start point a�nd scalm<op�!�MCollecExt?!!�y#�9Scxale"<_t@ext_he!�/Y�1�return�;
END;