#! <?xml version="1.0" encoding="UTF-8" ?>
#! <WORKSPACE
#    Command line to run this workspace:
#        "C:\Program Files\FME 2025.2 - b25810\fme.exe" "G:\My Drive\Customer Solutions\Knowledge Base\Agentic Schema Mapping\Workspaces\AgenticSchemaMapping_Part2.fmw"
#          --SourceDataset_GENERIC "G:\My Drive\Customer Solutions\Knowledge Base\Agentic Schema Mapping\Part 1 - Agentic Schema Mapping\GenericSampleDatasets (1)\SpatialExample1.geojson"
#          --Mapped_Output "G:\My Drive\Customer Solutions\Knowledge Base\Agentic Schema Mapping\Run Through"
#          --LUT_Output "G:\My Drive\Customer Solutions\Knowledge Base\Agentic Schema Mapping\Run Through"
#          --FME_LAUNCH_VIEWER_APP "YES"
#    
#!   A0_PREVIEW_IMAGE="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAZAAAAAuCAIAAACJatgqAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAgAElEQVR4nO2dd3Qcx5ngv+o00zM9CQMMMMiBIAgmgASDKAYFKlmWZJteWyvbq71n767uHNbnu/X6HFb31l6ffWd593ntW9u37+78ZFuW89qyTiIlWhJFiiJBigQDSBAgkYHJsXOouj8GYQY5UBIpze/x8Q1mur+uqq7++vu+qvoKEUJgRViWubITixR5q0FAU0zuo4mJblgA6O0tUZHlwjKInbqLyyWS7cO2LAIKAKSh7hG2pSVIa5pOZ6MRe1WlcF1LWqTIakGULpQJjaaFv/yHWG8CgBBASA+fNl0dDoeJTbDiV3FZi416u0taZB5qvehbD/lXorAsy8Q2SZKzF7t6b71tayIZDfX94bns/Wv90XvauT4lWFNy3UtbpMiqsCBrYUu3yGCK0uLDWjbqbegwMuPS2W9Eqjt4rcHnHDVK1/NFw+tGZSiFDROjFbiEFraixnmgTQBgGPpNKFuRItcZU6MC7EbVJB//WcokRbV084EJ/slHfCtUWLop2zj7m1Gs6wIhgIp9skgeqq7aGYdqkpRM7FzxLXvzoeiWj0crjGFNQAjpv0gQAgDkcAG9TGmIQv6K+X6MJrC20rA+QhD0U9SseMRIyAJqhZoMAakKzNvRR8MWWamORABVgWLspEiRxVmVwsIjvcYLTwHvRMkou+tB2VVGCBGcDgA5FFEExEOZY874O8b49y++dOf2dmQh1u2x22caa6pOLp0eGISaNaX8xFeKqPACP1PS3BACqqY1VRfol3DCOt95UfJsrXLlvjB1HThuqS1gWMQjmIJjDq2UEa2rvck08TkZ4Ow4m7K8XgEsTQebFe1KONuqXFPlFxVF4AurYWLgGK2spPjaL1JkEValsBAmRFcoVSKEAE1f6h/csHYNDHX+NkSk8XRTxQYYOOto29c2S81YxPzhU7+qLS/zMHY9njBNS9O0zZs3cRw3cYBFEElEus8/35dp28VSI6psNNHWWVx9513b2xd9sgkBNDtOQdB4TA0mX/xdWCppYCquoe7Y1Yyjdvd97292LF5Z0yKGSeYcDrcsFO976XxEEuN66ba97uETnWK93X8lPJzgfW01+NDrvM8tNjkCl6QYlBFbH93Yce+dzZPVsAghxahKkSJLYHUxLCltPvO/gGJA1+jN+5Dbv3QhGGOKoqC2GSgKAAghJ06cvOWWnblfJQVf6GX4yUFmVZHt/BKUyiQEg0vQG2sK/KxwHI+EWJZZoWpQNby2wfS65vDdUhl8ZZCxc/O6dQuXXzdJbYUR8Be9wjeRYgzrZud6xLCcHubAZ6ZiN8vSfAgAKAom40wIoYaG+q6urra2NsMwFFnliJQOR9q3dEii6MzN7DJNk2GWUmKMQdIKvlFVVdeN6Ej3hvUbvF5WEgXn8kSCrKI5g1SapqmqLiUH3YHSqirfPJKdC0jWDEBFZVWkyBJYncICAM5+vZyZ8vJyh8PR1dVFUTQB7vLloSf/z3d//NPfRjpfPq/IouXgady8/6GNtuWJFUXx8uUeh8MuKuwLh57tOtP5yU891Hn0oCJnLYeDtlrufG/bMkUCAGCMOztP2e02lmU1nTlx/NXx0f5/+Pqn3zh+UFazCu3irfpbHuzwLF9ykSJF5uMGndYgKTgSo508mhjqUxSF55cYcQcAjEHHenWAAoAzZ85s2bIFAKJJrCoUb5/Q0csUCbKKPW7TI0zYQidPdm7duiVnQ6WzOJmhBH6FkjWD2Dij1Fe0st5Eii7hzU7OJbxxHxIaWaYuMRTODlxR3A4vi2wsMjVp6v/5/r3+2h+z6agiiZIkapo2pZERAkR0bCo2VopcvmI6OBohG4tsyKLnl2ZjEUuTV/74/wxNlCRRVVUAuHixOxisKPAlsW4Zso21sgNdWcpBI2spkjkGXnnpOU3JyLKoKPLb0s5FitxErNolfNOgGebM6aN7996J1HPP/eBoSbA0xiSdnMc8mU3t7/iLWzbMeRYh5I8vHhweGmrfttPSLMMwc+YVAFgWEUUplQht2OiUrAtn/3cvqnZl9JTAW3W7DrTN77xZlvXDH3znc3/jC1Z6E1Hdssz6+nqPZ/oEjAEALl48v317MKVa3X/8yQXaIaRAli3rwx+6f37JGOOfP/0kJqiuvlbKmKqqzYiTTf6Jpv7Ms4gJALS2tk4NrRYp8o7nxnUJwzHG5SgwABVF5fnFL2pZFkK0gfXq8oLTMYFwDEwrr76SLDsdSxl9xBgzFFVZPnfcnRAYDWNSMONBliWHY6FQ+3RpWYYJBpY6oRVjPD4eCodDuT+bmpryVWeR+Si6hDc712OU8M2EQaaUzXq9vmhojPf4nHZTjMh8c2VOY0mi6BSE3P/5Z2GMh8aGfL5SipsZSacQlPoIla9yypagUSagEZp3uQ9CUFEKhcrMCWVLlMxgUlgqAAAghCQSiVAorGlq4bVQMBjcsmXL3LqzSJF3NDeuwqJo5tKF7lt371MSp55/od/r3bWm5OpvjvP7PUwXk3QmIIx8rjVrPlLoGxJCLMvKZNJO7xwKY8WTsBaFYZYdDdR1PRKJxuMxjPFsOxch5POVNDbW88uZgFakyDubG9QlBIDxGDGNucsmS7LDOe9jrKqKw+kIlLyJ6mmJiKIYCoUzmfRU7Ck/CMUwbCBQVlZWRtOLeCiqlQG0ynSJiEUOGq1g/sY7hKJLeLNzo7uEFX5E5k0LuXCGQCe28ApMnmWBMU6lUrFYXJLEqS8JIfm6yekUyssDTU2Nq3HfDKzoVGz1CTINS3LR1auVUqTI28qNq7AQWvlDSq1OW2GM0+l0NBqTZWm+YxBCHo+3qqrS4XC8qeEkDPi6pPMtrlYs8g7gxlVYbxI5ZRSLxWVZAkDzLChCXu9boYyWwdWffP5J5xb47Rlbc5bxjg5x6y44H/pg/+87e/0NMGD7qy90vHTbT+Hhhrs/+WjfX/99PwCs2/7n3/pM7dtd7iJFric3bgxrBRBCcpaRoiizY0Y5EEJer7e01O9Y0nyGtx8NSxoVvg6CMOem3r0uYTGGdbNzo8ewZpBTRrFYXJKkOWPYMKmMcpbR21fS6wyHbJrFArIWOMYCCxFq9tyIKTAhHNxwL5giRZbLDaGwCCGZTCYajUmSBHlqKP8DQsjj8VRWBt9JymgpIMS46ZqFjxGtEIfcHPXuapki70JWq7BUbfHMwJZlJRKJaDRmWQVmAkVTNLJgIoA9oYwWFajp8/qwCNCMZSoLHLwoGBPePkfwfilVng+WhQXsoPlQTZVQC1XEMAnFEAsrCxzDU3Ovx9ZNQvBySzQBIcg+a6aEaRFrIXNwITAB3jazfVZzEzl23iCkpq98HIJmgJ5raYKqkxUP99A0mj2/RV9F3dm56k4IGPPMFloKHDdvmxmr6EgLQAix5W2+tiqFJcn44jWaECDY0nXDMifnCs2sFGIYH8eVAV1wNwnCbesLbrymwbkrCz6aC0Ih1L4Os5N1Mi3oukKtdKNYoAhsaiEzHsixCB4J0Svu6S4Hbm1c3gYZJjFPSqfwIn1h7lSo+VRylc2OphlDr5hAVw/CeIX1oRFa12gKeSuoMIauS2jF29IghJprLZ97MsMagYEQRGLLVgIvdabTogUAt2+z33PrHHt3DY7qTz2bxUAA4IE9XpZd3iUoGtbWA1Wos7IiHhlDBK2wwyFEWhoLNiKIJXEktjJhAAA2ljTWFbwfCYGrA5ZurrT7EigPgN87x+mYQG8/vo7b02JMfvdKEgAQgQP3COsaJgIaS1JYhJBkMhkKhVRVyf1pWCrLckmR1xJYL10X5DCyCU4bQPba5ZRvXY1v8tT8vOmarjH5FpCi4qxkeF3TlUxmsT6eyFQES2cWQdN126KLfBUNZ2Vc4p6451kJa8lElipxMsDxOJu0vL7JVOuxYQ3ALK+ZdaFpdJPEM1pV2fRbjxCIpSAWjZaWBWcdremcjQMAUGJXx21Nja65ZIqyYZiEY5dxX1NmOhvqGTVqWusnZ5+J8bjkwMqQ4W2p9OYfaxgay84zOTRuxBtJPVMYtZQULMcSY+Gw4GJjQJcxFYw8oPjbq9yz6qdr3KzVToZJ4kkQ8jxRRcNZOSFnS9w8gIBJ0sI+gc/dvvRwhAGw1QRmea5a9GLcvqHSBRhDPG343BNtjjGk0/Hhy7i8pdKW1we0ZDRiJkudaylIIZt3dgx9cMwYi1oAUBVg9u8kDD2zwYfDxuV+PfeZ6gj3h4XmGl+ub+SkKeOnQkx7QxkDAIos8oWbE6iKpZtgL+yQyUw2ciUprAswspC3PEGMhFUAI1A+q88UIitYNbAjz5pIpYkRixketx1shCSxVcY7cjfCCHcP0i0bShccPNA0SzeILc8m0g2ip8f7k65mP6s48nZIkId6467m6cd2HhAkUrrfO4fSUFSsR/pHqZrmMj7/WUglh81MpbOOJlnK5rLRAKCN9cccDVXe2ULysYBc6Tdyn0dD1rqGie9nXlsUxYGBAV0vyNeZWybS0DCxTGRqlHA8hk8/89yR80c2ee/JlL5hDCccsJmtGPjNaLQp5Uj6A+zLz18O+mhHbXWjmTpymim7GzdEW3wf3NDCTEouuDqNoO/ar1JvNJ9k0mrAsymWOBYn7gYGv3529rlzNykq+Bzve/lcVBTjJeXbOPtwKD6Vaj3YxA7Ynfbvj1Vtqk+dGNbe6/T0RcTgjPzuzCyznyaX+g+OnG6MsVmpVNgdzzyTgJJ6Cnf2EM8Wer2527FvDRkb9Tc1Llq8JYIAQiMpyRrt/HGmxxZcc5diH7CiUMpXML7B343FGjNuEQRRfR27b+W0kw6xUttw7741s6bW0vOkErLCXddGNNrpdtlTofiFMSpQLT5z7fmT43X3VbcP268xw8NJX83mJDmM482129/T0VIgevZOSVbv5cPZ8/6zgdQ+546E62BksHmDarxG4rWCqVIN5OSz5s5tntirg7766mzEXr27/D3VZCBauqHSBTCrzSkqnkj2d/3ouWSmzx084K0Ml0HofNpksywdlDdxx05dS/DBB+++o31Oj3e+BqfzVVgiKsWO/ahTTEdHalo2baarLkdec1Ta2dHTx5h4JlE7Vc7mBfseRbF66OIb2TPeeHlIOUlXV5bEnZHzZ7WNtVnObf9Fn49yZ4KMIqYrWu/ctX3uAhcUnor0nnjhgq4EjAC/1cYfGg21bDfgmNBvpzyB9KWDQm1lSZxJZwTdGQM1ArVL2PGA1kOdB7PNjQnrinKBqSqriFivDMLt69XxbEp49fjYhj2V1UPmpeGof98j+1pmdiNqgTX6iWgyeuQnxyLiUEn5/rJgvArir6UtTmToCnU3d/bwQEYo3/fIvprweKRiUYU130VRbvStt7cXIYQQOJ1CXV3d7G1s8plSWOEY1jTaxtEgiZJTsCspmfLy9JKTDivY7zfdzukHKZbEokTzSEnrWVksCVbYwFISWVziXdIqZVnFPu902vW0iBMJ2sHTAKIkCU4nwHw5kXUxbdo9joLvdYPYeCOQl1ePELg2gh0cY8oZXZIkb1W5DSwllsWlkwUkpm4ijp2v02Rks65yeRZWwkiMGWE357BMTVWdy83sPH1pNb3OuXaGhZWVcSRKC46CJgLTNBlkpGTK61p4LY9pEYo2gmXTTSQpeDzCCDxCSCoUOKu4k22OTc1CtlyTWRgsotdUTAi0LOgfw06OoShKkkSnU5gup2maDKNJIgBMNEoeT/w4emXQAIB7buUf+xOBodGMaQ3Hu+QfPJ3OHfydv61kaEAISZLopIlkMrTAMgs2cEa0fH6wFwZ0QhHTzjIsQ+Ueh1ndzTRzWw/PIzYrYbevwMIaGTc9Doai5hO4CBnRLPGjfAtL00kiTlxOeqKyy+9MSVGvDs5xrKRgMUsJPAUA0sjZQbmirkoAAHAKThCjw4qrpswOADgVijAVFULeNac/ThcJAGPy6W+O5T7/u/d77tjpmJ7WwDBMbgNnhJCiyN3dFxeeLYkxNizV4/FIKvfrp39W19D4yM7dJ8cOKb3LSzqcv1VMJBJJJhOKxj3zu9+5Xa6Pf+KeV888230qi4RlZTGeKLgoioODQxjZX3np2Pjo0H/54p+dfvXQQpmL7a7ZA2wMPT07nBBy7tx5t9sdihjf/843/vqzX2i1hw6+fLpLtHietprvu39TroBopp9QiLGEaHQikRgfD+WSNHCczbIbLx8/Onip/4v/7aOxo+E/JF/x22rtZu3OA5tn+W0LodEFIfmhoeFMJoNo/nRn94nXX/7GNz8TPn7tuNIznYq6YnHxhgnGZGxNUeRr1wYo2n727NUXD/3mW098XjynFgiccQun23z67WhhUCaN+0uXLts4eyhqfvfbX/3y330NyMDQi5kxMLNmQPAnRMVyRDK4jeYvpIa2PPpYR0m+bN6GfC5kzmptjPG1q30cgyIhrGazuS8Hr45/75+f+O73/lXtPtaphBkrqEQH+LL1IhY3v+e+dXM9yrhQ8tjosCLLWYn69VM/uPue+++oY06+JqmiTAsOq27PA+05a2IxnZAXpey/2ocoFE/iJ/71f3ziLz7Z7s7MJXARLGv6+ZIlaaD/KmcXUrHs//zO1773L/9X7T7eqciiQi+aDy4fUSuMgWLceeJ4Mh7jBd+1K70XznX+4z99sffKuTfUiDaUHsrqQQH1jNtr65mqy+SSOFi+696KUyd+KKUqA9VNpk20klfrWm/JyLFsOiz3pZ17H3iwY3JEHAFAmRdl5IKYIAMATqezvX3Lksqbawhs6aZs6GY4bmzcvHXLli1QVXM7NEkNM5O9LBHTNIeGhltbWyJxo3V9W8vaZoDGvXc3zc4es0R6e3tbWtbGU3pjQ0vbpjaAptVIA4DTp9/YsGG9pumyYd1+xz2NTc1g23hvozi15cTqicVig4NDFIW8Xl9TU6PNZkMIqaoSEsN1TXWtLa0A9fV3wYfE+ol37Sro6jpXXV1VXl4WSyrVNfXlgQMIrWm4AxrEJklYofSurvPt7W3JtFJZVffggx9i2ZbVCOzvH/D7SxjGJpvWvfe9t6amnmHWNDRCR+5nUZwWe8scpzvsqLWBss8a0jr+2rGGdVtYGgajMmObsIMryl0HDnzI4RAabruvYZaoRbnad4XnHYGKIBU3tm3ftXXrdvB471pF3xgc6HcKgp3nTWLu3XfHupb1wPOrEQgA58+d3dKxPZORKeJ4/wc+7HK53bfd15DfjMvHMIxf/OzJ3XtvX9e6PhrL0JhtaqijqIa2O1xrmFLP5PvprkkbaiuYUlxkPvzoxjwhe9MxkyZVEs+XPwCimF+Y8hKquhzyTU5YzSihIAiKgd9z/wMci8CM9HYrwc2VxCQMsyQjE2M8NYjb03Mltymh28D7999t4xAACYXGKyqC+UtnFpaaL5CmGYfDaWB+xy23OOwUgBHrvaAE2x3EYJZWPsuyKIrKvUcJITRN8Txvt/Oihj/y0Y8BAMBYKBSsqMhX/wuJza2Lns9yvXKlV9O0jo6tM76323k37d6yfYubdQOYsZ7LatVG58RllmrKT+yoBhM3Xtd1AOL3+wHA7eY2bvILDgogO9ybKW2udOevVVrwCpZl0TSVs7A0TXM6nXa73U24lnV+t3P9VJsHiUEvuc2nElek06mGhnrLAtnAH374EYqiQBw8F3FtbvQBAHicbjBMk1FVURCE2SXVdJBVrGpobZ4GGh4eam1dT/FOO0c7nAzDTdQ0UF753oc+CAAEQBruyZRWua15VQPGGGOcHxtTFKVpzVoAUA3zoQ98mKaAiOMhAJAEx9TIy2KqAWNMJkdwU8lEXX0HACi6+aGHPwYARBw6P863NtsNk2GYxZtycjb1xNhx/9W+1g0bOY5zuVmOcX/gT/4UAMThs+P8xjW8aSxJ5FQvmu4eZ984tbm9o76hCQAYm6c8UOMRGAKgJkfirlL3lN1sAmFFURScAuMo9ZpmTkdMwHlLOYCJhnIJ0+l0CbFx0D9K3A5oqp8uxqqmNRCAwcEhy9SabSAbl176+XnMuzJ6iqet5nsPLLC9jWEYf/rwA3/z+a+WV7oYZOi6NpXnd2R0VM6m1rfA5ecvHqN4DjTEq0OkzEV1hbWq0lTLA/9+x+zBDMMwPvrI+z792S9WVftZ2qAm9jqEWCwZHu/fujUQl3D3Cz9lc5mLC5y4ObAs61Of/Pj73v9wY3ND1G6k09lNmybeCoTAhfMXPV5PINV3sPsoxQCwbj5zhZS6qfMhrbI01XxghnuS48UXnjv84sFHHv0P2RRRFREm3FcEQDDG1dXVZWXzZvxLppKXrl7quKU8ruq9h3+OLbsng2QHjVtuv3cJvvLPfvRUeHR8/4H9xGZk05Kmabt2TZsloqicPX3mll3BUGg8eunZP2a5BrevgTZOnDJdHVyts6xk+97WWSFNjPF//k+f2rtvf+vGjamoFQ5Hdu/ZnftJUYwzna/fursuLuGel54+bzmEjJZZzJchhHzly1/YtKl9Y1tHOmEpykTaQsOwnvr9zy6KFx7b9me8Mvr0L0/ZaB8tZeVAc315ozr4alxJK7Z6L1d/931tU73ZwgQBxdIF3kQkEtvQtiU16WI47KjUi4ZCGIAcfeXlHTtvxX2nLiNt/NIFf8Z2LRqtqNkckw6X1e20l962u2lCSDwaDYfHg9WtLD/z2UEErvX1sgzVQLKnhy/Kp4dJeaMdIJWVylxrGz+6e908de/v7/vq33/pM//xcc7JAtbs0zuYoN6eyzabrc6SSfLMC7+GMI76HL5FN2R67eiRX/3qqT//xOdsPDJ0GWOroWnNZDvD8aNHtnZsi2atdNcf/g1FSNTLexf3NP/5n/67ILg277hLTIGYzSCEdF1v37pt6oDeyxdPpg6v9fobuFvl0af+7YyN8dKiKAWamsrrlcHjUTWtcLXlXO3eezctrnYQoFAcr6mmxMKtDla1ljCZwarCGLo6Pfs8L3S7ABjjQwef2bHzjpISS3CyUzH+eNIydJumSU6nEyA10CeyQLxrapyp/qtWTZN/IfPq0MFndt5yu9djud2czWYHAEUlyTRjaLJzukT5cb15IYS8+MKzHdv38DwuLWGmUugRgOFxjA3d6XAihCDVfzVhgqehyc+k+nutmub5CwhX+3o0TQ0Ea4MB5HTalx4yTxiJFGQpjcrzBJdUiynOdp71+jych62z17qd7vypPlkZi1kWEXlKnDreE3W11CyhiV449Gz71lsQgypK6als0LpBQlGamMpy2xwAXn7p0ObNW2gbXVFK5U6wLBgJWyP9l1gf21qzcc6z5vT0v/VktOuKDoVB90vne1o3tU8F3c9dEiUZJIU8/lhQkZfaoKKYyWayNmfAJlB2DmmqOjw8uKa5BQBicdNlIwyNJt++oiQCwOJ+XCIR7+4+39S8FdmxR7BPvbzDMYunNN4+vQJ/Ovi+IAMDfalUqqJ6jctDO3gby7K57zWdaDJwlJJX2aV6mseOvrJmTXPW4gN+2uFwIoQunDuzcfNEKElScGh4VCaxNcG1gnPuKT3LdWk/9pXR3If8oPtqFz/HkxasdG4vBeDzzBxPS2exgVc475AG5PUUlCaVxtbyNnidgBBgaeSZtc8zxpDMWCueH+fk0QIbRM9JwkhkQXKzbgBp5NS4fVu1oNjt/IQNv5QenJsWE1NiDfa62aOEssRMzfyM9Z5SghvKaN7OTzgJojjhc83GsixMKN0yAiUFNUqLuCBx/rLA4PdNdwnLgvEY8QksAIjDPdnSluBicwFyfuU3fxQ/d0WDPIWVSCXDo9GG5pYphfX8K1ndJHaOevyx8qm5FGasp9eobZ24jKKq/OwBc4xxRsYsj+wcutR9oXntutzrJ5owy1wcTQGIogQAs33A+R1DTdNUk6FsJD9kQwiks+ZK5sIAAICNQ3xhAEjTiSYTn2uiD0jDPZmyFre5pNhurmHHknp5KQMAmqr29V3ZsHHzhCgFI5NyOSgAcbg3UzaZynwFEEIMw2BY9tG/m2eUcDXkd6/rwmwdsRpm6K/VQ1Hg976la/0JIcl06kLPxR17AqFrl3uOnmC8ouYKNijpi2yFq7nx4a31C0sYHh2RRLGyee6Ji5KknO48uWfPHeMnXusRB5PHnmG5dd1Uyd6GxNAhU9xf22pW7d7TPOMsjPFf/eWj99730LqNG9M++pe/+OWXvvzF3E9TWzdeFwiBU6dOVVfXesyx469dtMlAUk7YYNIvh7UdXrtr7z2bAlMHG4Zx4AN3/93j30hFKTltAEAsZO/rdUiSaFr6zm27VHNak+omQYBEGQMhL7/84q5d+3DfqaMm7es59EOujU69yFfdWm356oJquva2tskwxPnzZ7/9xNc//dn/ahcYgjWWZaeNZQK9vT0sQzWxuD/dH7pmWWBmjZhI0T4ANXSNsPe2/+UcjmE0GhkfHw1WtdhtBUPMCIHXfZ1X+xICR44c3rFjF7l65hLSxi+nAv5Tl59zVLVvtujDEXpnY+O0/5vPt5/4uuBybdl1XyYBspRFCG1qKwi5qqpy9vSJPXtuxePHjnfzBhMMMWfaoOKVsLbdywu77t+0tF0OIpFwODy2bt3cBvU7Kr3MOxLJkkbMcdDBxtsAAFJjY2xl5XKGduKRuJ23M3a62d5EFU4f1Q0SjtLEyoubqCMjUnW1fxGZhJCjRw5v6djBcVaJl1IUxe9fYNXACsGYjIQIWJZ9zo1p1VjcLPUL+cfjo0cOb9ux6/u/SnRf1QHg7l38x98vOBy8burzzcN68mtVuqrMfYlZRCLh8bHRQOUa1gGCY9rbAoBkGnOAEUIz/H1JlCA3IWkeVFVJp5KCu0zw0Oxy5ugtl5xLyDP6EiubT2fn8cbGprTGBfw0P2s/KMMgqoyIqc4pWY3HLH/pEvusLEvZTLosUPHY13NbQ5GPH/Ddtp2/Pi5hkbeAuB63YLXrSv1sCY3msA0zErZW7MGROZz664tpkay07D/gbS8AAAJZSURBVLqb5kQgwOumOAbBrHxY+QrrR1+tnHIJJVF0CrQomgzDM8wckUaMsWEYikHnXMIZv6ZEa8XmJUtT/ByrHq8ns1zCU+N8YYhhfqdV13WO48aSRvk8C4IkZRUdae4rEgAgAKU+BqGbLR/Wuxk/t5jBswryVxrcgDA0mlpa+GZByOHDh/bsuR33nTpClJqrWhdDSnouZDbsQXJ8c4c3bkx7SdFoJBQaq6pdz/LsbEle4UZPDUgIvPTSoV279pCrZ44kR63BiRBDZSMDF8Kmq9VV5+zYs3X2QPzX/+ErJSX+7XsfyCap3/7y6U9/7m/5QmPKyb8VHaloYRV5V7CAhfXk16os08h37hZAliVRFFm7n3POYWHd4JgmyWYJi6y8yqqjo2JV1eLufNfZUw2NTSphAyW0YRhOwfUWZw8vWlhFigAAEEKmHuBFvSSW5Xy+Ekm7yVRVDoZBDgFpOmjTEQautKpEW0LAYV37ViBQJlAAYLMvOwR2vSgqrCLvRvL9CkLIC4ee23fbftx3alEvqbv7/ONf+fyXHv9Hm0AP9V+mEP2eB973NlViJdhYsC0z+dcNxUpcQgxYUrJ2G7eCc4sUeRsgYJg6z7lVE+dcwje6le/8OJX78V++FASC8+bTpkZH2aqquQe1MulUKpXwl1bZHYSzUTRNL7oPbpHrwspHCQEAE2yaxnUvU5EibwoIWJpDCMmalVCwg6MBICNauSjMCkIxvI0qqqm3GEkzS5zUChVWkSI3I4SQSNZY+UT8Im8fDCIBj72osIq86yDT+QyK3DTkstP/f944zs24IvmQAAAAAElFTkSuQmCC"
#!   ARCGIS_COMPATIBILITY="ARCGIS_AUTO"
#!   ATTR_TYPE_ENCODING="SDF"
#!   BEGIN_PYTHON=""
#!   BEGIN_TCL=""
#!   CATEGORY=""
#!   DESCRIPTION=""
#!   DESTINATION="NONE"
#!   DESTINATION_ROUTING_FILE=""
#!   DOC_EXTENTS="7740.93 886.141"
#!   DOC_TOP_LEFT="-2239.14 -1375.01"
#!   ENABLE_DATA_CACHING="Yes"
#!   ENABLE_FEATURE_COUNTING="No"
#!   ENABLE_PERFORMANCE_PROFILING="No"
#!   END_PYTHON=""
#!   END_TCL=""
#!   EXPLICIT_BOOKMARK_ORDER="false"
#!   FME_BUILD_NUM="25810"
#!   FME_BULK_MODE_THRESHOLD="2000"
#!   FME_DOCUMENT_GUID="23c43efd-bd42-42a3-8f7c-e231de9426fd"
#!   FME_DOCUMENT_PRIORGUID="a5874534-4080-41fa-b9e8-726de40cba50"
#!   FME_GEOMETRY_HANDLING="Enhanced"
#!   FME_IMPLICIT_CSMAP_REPROJECTION_MODE="Auto"
#!   FME_NAMES_ENCODING="UTF-8"
#!   FME_REPROJECTION_ENGINE="FME"
#!   FME_SERVER_SERVICES=""
#!   FME_STROKE_MAX_DEVIATION="0"
#!   HISTORY=""
#!   IGNORE_READER_FAILURE="No"
#!   LAST_SAVE_BUILD="FME(R) 2025.2.0.0 (20251120 - Build 25810 - WIN64)"
#!   LAST_SAVE_DATE="2025-12-05T16:52:16"
#!   LOG_FILE=""
#!   LOG_MAX_RECORDED_FEATURES="200"
#!   MARKDOWN_DESCRIPTION=""
#!   MARKDOWN_USAGE=""
#!   MAX_LOG_FEATURES="200"
#!   MULTI_WRITER_DATASET_ORDER="BY_ID"
#!   PASSWORD=""
#!   PROMPT_FOR_PARAMS="Yes"
#!   PYTHON_COMPATIBILITY="313"
#!   REDIRECT_TERMINATORS="NONE"
#!   SAVE_ON_PROMPT_AND_RUN="Yes"
#!   SHOW_ANNOTATIONS="true"
#!   SHOW_INFO_NODES="true"
#!   SOURCE="NONE"
#!   SOURCE_ROUTING_FILE=""
#!   STOP_AT_BREAKPOINTS="No"
#!   TERMINATE_REJECTED="YES"
#!   TITLE=""
#!   USAGE=""
#!   USE_MARKDOWN=""
#!   VIEW_POSITION="-498.149 355.82"
#!   WARN_INVALID_XFORM_PARAM="Yes"
#!   WORKSPACE_VERSION="1"
#!   ZOOM_SCALE="101"
#! >
#! <DATASETS>
#! <DATASET
#!   IS_SOURCE="true"
#!   ROLE="READER"
#!   FORMAT="GENERIC"
#!   DATASET="$(SourceDataset_GENERIC)"
#!   KEYWORD="GENERIC_1"
#!   MULTI_GEOM_ALLOWED="false"
#!   ATTR_MAX_LENGTH="0"
#!   ATTR_CASE="ANY"
#!   FEATURE_TYPE_CASE=""
#!   FEATURE_TYPE_LENGTH="0"
#!   FEATURE_TYPE_INVALID_CHARS=""
#!   ALLOWED_FEAT_TYPES=""
#!   WRITE_DEFS="true"
#!   DEFLINE_TEMPLATE="fme_type {FME_GEN_GEOMETRY}"
#!   DEFLINE_ATTRS="true"
#!   EXPOSABLE_ATTRS="fme_basename char(50) fme_color char(50) fme_dataset char(50) fme_feature_type char(50) fme_fill_color char(50) fme_format_long_name char(255) fme_format_short_name char(255) fme_geometry char(50) fme_primary_axis real64 fme_rotation real64 fme_secondary_axis real64 fme_start_angle real64 fme_sweep_angle real64 fme_text_size real64 fme_text_string char(50) fme_type char(50) multi_reader_full_id int32 multi_reader_id int32 multi_reader_keyword char(50) multi_reader_type char(50)"
#!   DEFLINE_PARMS=""
#!   ATTR_INDEX_TYPES=""
#!   ATTR_NAME_INVALID_CHARS=""
#!   SUPPORTS_FEATURE_TYPE_FANOUT="true"
#!   ENABLED="true"
#!   DYNAMIC_FEATURE_TYPES_LIST_ON_MERGE="true"
#!   DATASET_TYPE="FILEURLDIR"
#!   FTTR_TYPE="FEATURE_TYPES_ENCODED"
#!   GENERATE_FME_BUILD_NUM="25810"
#!   FEATURE_TYPES=""
#!   MAX_FEATURES=""
#!   MAX_FEATURES_PER_FEATURE_TYPE=""
#!   MIN_FEATURES=""
#!   START_FEATURE=""
#! >
#! <METAFILE_PARAMETER
#!   NAME="ADVANCED_PARMS"
#!   VALUE="READER_SCHEMAS_TO_SKIP"
#! />
#! <METAFILE_PARAMETER
#!   NAME="AUTO_PUBLISH"
#!   VALUE="SourceDataset DestDataset GENERIC_OUT_FORMAT"
#! />
#! <METAFILE_PARAMETER
#!   NAME="MIME_TYPE"
#!   VALUE=""
#! />
#! <METAFILE_PARAMETER
#!   NAME="WRITER_SPATIAL_DEFINITION_TABLE"
#!   VALUE="YES"
#! />
#! </DATASET>
#! </DATASETS>
#! <DATA_TYPES>
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="char(width)"
#!   FME_TYPE="fme_char(width)"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="varchar(width)"
#!   FME_TYPE="fme_varchar(width)"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="buffer"
#!   FME_TYPE="fme_buffer"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="xml"
#!   FME_TYPE="fme_xml"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="json"
#!   FME_TYPE="fme_json"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="binary(width)"
#!   FME_TYPE="fme_binary(width)"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="varbinary(width)"
#!   FME_TYPE="fme_varbinary(width)"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="binarybuffer"
#!   FME_TYPE="fme_binarybuffer"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="datetime"
#!   FME_TYPE="fme_datetime"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="date"
#!   FME_TYPE="fme_date"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="time"
#!   FME_TYPE="fme_time"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="decimal(width,decimal)"
#!   FME_TYPE="fme_decimal(width,decimal)"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="real32"
#!   FME_TYPE="fme_real32"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="real64"
#!   FME_TYPE="fme_real64"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="int32"
#!   FME_TYPE="fme_int32"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="uint32"
#!   FME_TYPE="fme_uint32"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="int64"
#!   FME_TYPE="fme_int64"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="uint64"
#!   FME_TYPE="fme_uint64"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="boolean"
#!   FME_TYPE="fme_boolean"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="int16"
#!   FME_TYPE="fme_int16"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="uint16"
#!   FME_TYPE="fme_uint16"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="char"
#!   FME_TYPE="fme_int8"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="uint8"
#!   FME_TYPE="fme_uint8"
#!   FORMAT="GENERIC"
#! />
#! <DATA_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="copied"
#!   FME_TYPE="fme_buffer"
#!   FORMAT="GENERIC"
#! />
#! </DATA_TYPES>
#! <GEOM_TYPES>
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_point"
#!   FME_TYPE="fme_point"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_line"
#!   FME_TYPE="fme_line"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_area"
#!   FME_TYPE="fme_area"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_text"
#!   FME_TYPE="fme_text"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_ellipse"
#!   FME_TYPE="fme_ellipse"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_arc"
#!   FME_TYPE="fme_arc"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_rectangle"
#!   FME_TYPE="fme_rectangle"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_rounded_rectangle"
#!   FME_TYPE="fme_rounded_rectangle"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_raster"
#!   FME_TYPE="fme_raster"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_solid"
#!   FME_TYPE="fme_solid"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_surface"
#!   FME_TYPE="fme_surface"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_point_cloud"
#!   FME_TYPE="fme_point_cloud"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_no_geom"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_collection"
#!   FME_TYPE="fme_collection"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_any"
#!   FME_TYPE="fme_no_geom"
#!   FORMAT="GENERIC"
#! />
#! <GEOM_TYPE
#!   IS_SOURCE="true"
#!   FORMAT_TYPE="fme_point_cloud"
#!   FME_TYPE="fme_voxel_grid"
#!   FORMAT="GENERIC"
#! />
#! </GEOM_TYPES>
#! <FEATURE_TYPES>
#! <FEATURE_TYPE
#!   IS_SOURCE="true"
#!   NODE_NAME="NewFeatureType"
#!   FEATURE_TYPE_NAME=""
#!   FEATURE_TYPE_NAME_QUALIFIER=""
#!   IS_EDITABLE="false"
#!   IDENTIFIER="2"
#!   POSITION="-2189.1435314353143 -583.12853128531265"
#!   BOUNDING_RECT="-2189.1435314353143 -583.12853128531265 436 65"
#!   ORDER="500000000000000"
#!   COLLAPSED="true"
#!   KEYWORD="GENERIC_1"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   FEAT_GEOMTYPE="fme_any"
#!   HIDDEN_USER_ATTRS=""
#!   MERGE_FILTER="*"
#!   MERGE_FILTER_TYPE="FILTER_TYPE_GLOB"
#!   MERGE_FILTER_CASE_SENSITIVE="true"
#!   DYNAMIC_SCHEMA="true"
#! >
#!     <FEAT_GEOMETRY NAME="" TYPE="fme_any" SPATIAL_TYPE=""/>
#!     <FEAT_ATTRIBUTE ATTR_NAME="fme_feature_type" ATTR_TYPE="char(50)"  EXPOSABLE_ATTR="true" ATTR_HAS_PORT="true" ATTR_VALUE=""/>
#! </FEATURE_TYPE>
#! </FEATURE_TYPES>
#! <FMESERVER>
#! <READER_DATASETS>
#! <DATASET
#!   NAME="FeatureReader"
#!   OVERRIDE="--FeatureReaderDataset_FeatureReader"
#!   DATASET="FeatureReader/SpatialExample1.geojson"
#! />
#! <DATASET
#!   NAME="GENERIC_1"
#!   OVERRIDE="-GENERIC_1_DATASET"
#!   DATASET="GENERIC_1/SpatialExample1.geojson"
#! />
#! </READER_DATASETS>
#! <WRITER_DATASETS>
#! <DATASET
#!   NAME="FeatureWriter"
#!   OVERRIDE="--FeatureWriterDataset_FeatureWriter"
#!   DATASET="FeatureWriter/Run Through"
#! />
#! <DATASET
#!   NAME="FeatureWriter_2"
#!   OVERRIDE="--FeatureWriterDataset_FeatureWriter_2"
#!   DATASET="FeatureWriter_2/mapped_dataset.json"
#! />
#! </WRITER_DATASETS>
#! </FMESERVER>
#! <GLOBAL_PARAMETERS>
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI FILE_OR_URL SourceDataset_GENERIC INCLUDE_WEB_BROWSER%All_files(*)|* Source Dataset"
#!   DEFAULT_VALUE="G:\My Drive\Customer Solutions\Knowledge Base\Agentic Schema Mapping\Part 1 - Agentic Schema Mapping\GenericSampleDatasets (1)\SpatialExample1.geojson"
#!   IS_STAND_ALONE="false"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI DIRNAME_OR_ATTR Mapped_Output Mapped Dataset Output Folder"
#!   DEFAULT_VALUE="G:\My Drive\Customer Solutions\Knowledge Base\Agentic Schema Mapping\Run Through"
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI DIRNAME LUT_Output Lookup Table Output Folder"
#!   DEFAULT_VALUE="G:\My Drive\Customer Solutions\Knowledge Base\Agentic Schema Mapping\Run Through"
#!   IS_STAND_ALONE="false"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI IGNORE NO_EDIT STRING LUTPATH Enter Text Data"
#!   DEFAULT_VALUE="$(LUT_Output)/lookuptable.csv"
#!   IS_STAND_ALONE="true"
#! />
#! </GLOBAL_PARAMETERS>
#! <USER_PARAMETERS
#!   FORM="eyJwYXJhbWV0ZXJzIjpbeyJuYW1lIjoiU291cmNlRGF0YXNldF9HRU5FUklDIiwicHJvbXB0IjoiU291cmNlIERhdGFzZXQiLCJ2YWx1ZVR5cGUiOiJzdHJpbmciLCJkZWZhdWx0VmFsdWUiOiJHOlxcTXkgRHJpdmVcXEN1c3RvbWVyIFNvbHV0aW9uc1xcS25vd2xlZGdlIEJhc2VcXEFnZW50aWMgU2NoZW1hIE1hcHBpbmdcXFBhcnQgMSAtIEFnZW50aWMgU2NoZW1hIE1hcHBpbmdcXEdlbmVyaWNTYW1wbGVEYXRhc2V0cyAoMSlcXFNwYXRpYWxFeGFtcGxlMS5nZW9qc29uIiwidHlwZSI6ImZpbGUiLCJhY2Nlc3NNb2RlIjoicmVhZCIsIml0ZW1zVG9TZWxlY3QiOiJmaWxlcyIsInNlbGVjdE11bHRpcGxlIjp0cnVlLCJ2YWxpZGF0ZUV4aXN0ZW5jZSI6ZmFsc2UsImZpbHRlcnMiOlt7ImZpbHRlciI6WyIqIl0sImRlc2NyaXB0aW9uIjoiQWxsIGZpbGVzIn1dLCJhbGxvd1VSTCI6dHJ1ZSwiaW5jbHVkZVdlYkJyb3dzZXIiOnRydWV9LHsibmFtZSI6Ik1hcHBlZF9PdXRwdXQiLCJwcm9tcHQiOiJNYXBwZWQgRGF0YXNldCBPdXRwdXQgRm9sZGVyIiwidmFsdWVUeXBlIjoic3RyaW5nIiwiZGVmYXVsdFZhbHVlIjoiRzpcXE15IERyaXZlXFxDdXN0b21lciBTb2x1dGlvbnNcXEtub3dsZWRnZSBCYXNlXFxBZ2VudGljIFNjaGVtYSBNYXBwaW5nXFxSdW4gVGhyb3VnaCIsInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsiZXhwcmVzc2lvbiIsImdsb2JhbFBhcmFtZXRlciJdLCJ0eXBlIjoiZmlsZSIsImFjY2Vzc01vZGUiOiJ3cml0ZSIsIml0ZW1zVG9TZWxlY3QiOiJmb2xkZXJzIiwic2VsZWN0TXVsdGlwbGUiOmZhbHNlLCJ2YWxpZGF0ZUV4aXN0ZW5jZSI6dHJ1ZSwiYWxsb3dVUkwiOmZhbHNlfSx7Im5hbWUiOiJMVVRfT3V0cHV0IiwicHJvbXB0IjoiTG9va3VwIFRhYmxlIE91dHB1dCBGb2xkZXIiLCJ2YWx1ZVR5cGUiOiJzdHJpbmciLCJkZWZhdWx0VmFsdWUiOiJHOlxcTXkgRHJpdmVcXEN1c3RvbWVyIFNvbHV0aW9uc1xcS25vd2xlZGdlIEJhc2VcXEFnZW50aWMgU2NoZW1hIE1hcHBpbmdcXFJ1biBUaHJvdWdoIiwiZGVwcmVjYXRlZEZsYWdzIjpbInNob3daaXBCdXR0b24iXSwidHlwZSI6ImZpbGUiLCJhY2Nlc3NNb2RlIjoid3JpdGUiLCJpdGVtc1RvU2VsZWN0IjoiZm9sZGVycyIsInNlbGVjdE11bHRpcGxlIjpmYWxzZSwidmFsaWRhdGVFeGlzdGVuY2UiOmZhbHNlfSx7Im5hbWUiOiJMVVRQQVRIIiwicHJvbXB0IjoiRW50ZXIgVGV4dCBEYXRhIiwic2hvd1Byb21wdCI6ZmFsc2UsInZhbHVlVHlwZSI6InN0cmluZyIsImRlZmF1bHRWYWx1ZSI6IiQoTFVUX091dHB1dCkvbG9va3VwdGFibGUuY3N2IiwidmlzaWJpbGl0eSI6ImhpZGRlbkVuYWJsZWQiLCJ0eXBlIjoidGV4dCIsInNob3dFZGl0QnV0dG9uIjpmYWxzZX1dfQ=="
#! >
#! <PARAMETER_INFO>
#!     <INFO NAME="SourceDataset_GENERIC" 
#!   DEFAULT_VALUE="G:\My Drive\Customer Solutions\Knowledge Base\Agentic Schema Mapping\Part 1 - Agentic Schema Mapping\GenericSampleDatasets (1)\SpatialExample1.geojson"
#!   SCOPE="DEPENDENT"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI FILE_OR_URL SourceDataset_GENERIC INCLUDE_WEB_BROWSER%All_files(*)|* Source Dataset"
#! />
#!     <INFO NAME="Mapped_Output" 
#!   DEFAULT_VALUE="G:\My Drive\Customer Solutions\Knowledge Base\Agentic Schema Mapping\Run Through"
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI DIRNAME_OR_ATTR Mapped_Output Mapped Dataset Output Folder"
#! />
#!     <INFO NAME="LUT_Output" 
#!   DEFAULT_VALUE="G:\My Drive\Customer Solutions\Knowledge Base\Agentic Schema Mapping\Run Through"
#!   SCOPE="DEPENDENT"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI DIRNAME LUT_Output Lookup Table Output Folder"
#! />
#!     <INFO NAME="LUTPATH" 
#!   DEFAULT_VALUE="$(LUT_Output)/lookuptable.csv"
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI IGNORE NO_EDIT STRING LUTPATH Enter Text Data"
#! />
#! </PARAMETER_INFO>
#! </USER_PARAMETERS>
#! <COMMENTS>
#! <COMMENT
#!   IDENTIFIER="37"
#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;meta charset=&quot;utf-8&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;hr { height: 1px; border-width: 0; }&#10;li.unchecked::marker { content: &quot;\2610&quot;; }&#10;li.checked::marker { content: &quot;\2612&quot;; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;Segoe UI&apos;; font-size:9pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Provide your API Key&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
#!   POSITION="234.39644333943352 -828.12853128531265"
#!   TOP_LEFT="234.39644333943352 -828.12853128531265"
#!   BOTTOM_RIGHT="718.18984377343781 -829.12853128531265"
#!   BOUNDING_RECT="234.39644333943352 -828.12853128531265 483.79340043400435 1"
#!   ORDER="500000000000018"
#!   FOLLOW_ANCHOR="true"
#!   INFO_NODE="false"
#!   CUSTOM_USER_COLOR="false"
#!   UUID="{be8e7282-ad2e-4a8c-8cc6-d9548476b6f9}"
#!   COLOUR="0.92156862745098034,1,0.80784313725490198,0.78431372549019607"
#!   SIZE_POLICY="10"
#!   ANCHORED_NODE="18"
#! />
#! </COMMENTS>
#! <CONSTANTS>
#! </CONSTANTS>
#! <BOOKMARKS>
#! <BOOKMARK
#!   IDENTIFIER="17"
#!   NAME="Part 1"
#!   DESCRIPTION=""
#!   TOP_LEFT="-2239.1435314353143 -493.12853128531265"
#!   ORDER="500000000000008"
#!   PALETTE_COLOR=""
#!   BOTTOM_RIGHT="2447.4254643536538 -1345.0075000750005"
#!   BOUNDING_RECT="-2239.1435314353143 -493.12853128531265 4686.5689957889681 851.87896878968786"
#!   STICKY="true"
#!   COLOUR="0.92156862745098034,1,0.80784313725490198,1"
#!   CONTENTS="9 16 11 19 18 37 2 15 13 8 14 7 20 5 12 21 23 24 6 3 10 4 22 25 "
#! >
#! </BOOKMARK>
#! <BOOKMARK
#!   IDENTIFIER="38"
#!   NAME="Part 2"
#!   DESCRIPTION=""
#!   TOP_LEFT="2493.775437754377 -488.86627480136184"
#!   ORDER="500000000000019"
#!   PALETTE_COLOR="Workflow1"
#!   BOTTOM_RIGHT="5501.7871911392376 -1375.0075000750005"
#!   BOUNDING_RECT="2493.775437754377 -488.86627480136184 3008.0117533848606 886.14122527363861"
#!   STICKY="true"
#!   COLOUR="0.32549019607843138,0.62352941176470589,0.92549019607843142,1"
#!   CONTENTS="29 26 30 32 34 31 28 36 35 33 "
#! >
#! </BOOKMARK>
#! </BOOKMARKS>
#! <TRANSFORMERS>
#! <TRANSFORMER
#!   IDENTIFIER="3"
#!   TYPE="Sampler"
#!   VERSION="5"
#!   POSITION="-1571.890718907189 -583.12853128531265"
#!   BOUNDING_RECT="-1571.890718907189 -583.12853128531265 436 65"
#!   ORDER="500000000000001"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="SAMPLED"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="fme_feature_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="NOT_SAMPLED"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_ATTR ATTR_NAME="fme_feature_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_PARM PARM_NAME="GROUP_BY" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GROUP_BY_MODE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GROUP_PROCESSING_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="MODE" PARM_VALUE="ORIGINAL"/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="RATE" PARM_VALUE="5"/>
#!     <XFORM_PARM PARM_NAME="SAMPLE_TYPE_MULTIPLIER" PARM_VALUE="-1"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Sampler"/>
#!     <XFORM_PARM PARM_NAME="SAMPLE_MODE" PARM_IS_LOOKUP="true" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="SAMPLE_TYPE_LONG" PARM_IS_LOOKUP="true" PARM_VALUE="First N Features"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="5"
#!   TYPE="Counter"
#!   VERSION="4"
#!   POSITION="-1009.3850938509386 -583.12853128531265"
#!   BOUNDING_RECT="-1009.3850938509386 -583.12853128531265 436 65"
#!   ORDER="500000000000002"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="fme_feature_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="tid" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="ADVANCED_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CNT_ATTR" PARM_VALUE="tid"/>
#!     <XFORM_PARM PARM_NAME="DOMAIN" PARM_VALUE="counter"/>
#!     <XFORM_PARM PARM_NAME="GROUP_BY" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GROUP_BY_MODE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GROUP_PROCESSING_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GRP_CNT_ATTR" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_ATTR_NAMES_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="SCOPE" PARM_VALUE="Global"/>
#!     <XFORM_PARM PARM_NAME="START" PARM_VALUE="0"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Counter"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="7"
#!   TYPE="AttributeExploder"
#!   VERSION="3"
#!   POSITION="-396.87896878968792 -583.12853128531265"
#!   BOUNDING_RECT="-396.87896878968792 -583.12853128531265 436 65"
#!   ORDER="500000000000003"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="fme_feature_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="tid" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_attr_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_attr_value" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="ATTR_NAME_LABEL" PARM_VALUE="_attr_name"/>
#!     <XFORM_PARM PARM_NAME="ATTR_VALUE_LABEL" PARM_VALUE="_attr_value"/>
#!     <XFORM_PARM PARM_NAME="CASE" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="EXPLODING_TYPE_LOOKUP" PARM_VALUE="EXPLODE_AS_FEATURES"/>
#!     <XFORM_PARM PARM_NAME="IGNORE_REGEXP" PARM_VALUE="tid&lt;pipe&gt;^multi_&lt;pipe&gt;^fme_&lt;pipe&gt;^shapefile&lt;pipe&gt;^csv&lt;pipe&gt;^json"/>
#!     <XFORM_PARM PARM_NAME="KEEP_ATTRIBUTES" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="KEEP_GEOMETRY" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="LIST_NAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="OAN_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeExploder"/>
#!     <XFORM_PARM PARM_NAME="EXPLODING_TYPE" PARM_IS_LOOKUP="true" PARM_VALUE="Features"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="9"
#!   TYPE="StringConcatenator"
#!   VERSION="7"
#!   POSITION="-2189.1435314353143 -980.00750007500051"
#!   BOUNDING_RECT="-2189.1435314353143 -980.00750007500051 436 65"
#!   ORDER="500000000000004"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="fme_feature_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="tid" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_attr_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_attr_value" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="SampleValues" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="ACTION" PARM_VALUE="Create New Attribute"/>
#!     <XFORM_PARM PARM_NAME="ATTRLIST" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="PARAM_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARM_LINE" PARM_VALUE="fme_basicstring:18%1%19:&lt;at&gt;Value&lt;openparen&gt;_attr_name&lt;closeparen&gt;:&lt;at&gt;Value&lt;openparen&gt;_attr_value&lt;closeparen&gt;"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="VAL_ATTR" PARM_VALUE="SampleValues"/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="StringConcatenator"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="11"
#!   TYPE="Aggregator"
#!   VERSION="18"
#!   POSITION="-1639.138031380314 -980.00750007500051"
#!   BOUNDING_RECT="-1639.138031380314 -980.00750007500051 436 65"
#!   ORDER="500000000000005"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="AGGREGATE"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="tid" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="SampleValues" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="fme_feature_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_attr_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_attr_value" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="ACCUM_ATTRS" PARM_VALUE="All"/>
#!     <XFORM_PARM PARM_NAME="AGGREGATE_TYPE" PARM_VALUE="Homogeneous Collection (If Possible)"/>
#!     <XFORM_PARM PARM_NAME="ASSEMBLE_HIERARCHY_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="ASSEMBLE_ONE_LEVEL_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ATTR_ACCUM_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ATTR_TO_TRAIT" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AV" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CHILD_ID_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CONCAT_ATTRS" PARM_VALUE="SampleValues"/>
#!     <XFORM_PARM PARM_NAME="COUNT_ATTR" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CYCLE_ID_ERROR_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GENERATE_LIST_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="GEOM_LABEL_FIELD" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="GROUP_BY" PARM_VALUE="tid"/>
#!     <XFORM_PARM PARM_NAME="GROUP_BY_MODE" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="GROUP_PROCESSING_GROUP" PARM_VALUE="YES"/>
#!     <XFORM_PARM PARM_NAME="ID_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="ID_SELECTION" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="LIST_ATTRS_TO_INCLUDE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="LIST_ATTRS_TO_INCLUDE_MODE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="LIST_NAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="MODE" PARM_VALUE="Geometry - Assemble One Level"/>
#!     <XFORM_PARM PARM_NAME="OAN_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARENT_ID_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="PRESERVE_ID" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SEP" PARM_VALUE="&lt;lf&gt;"/>
#!     <XFORM_PARM PARM_NAME="SUM" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="WEIGHT" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Aggregator"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="13"
#!   TYPE="AttributeManager"
#!   VERSION="5"
#!   POSITION="-1107.8827188271885 -980.00750007500051"
#!   BOUNDING_RECT="-1107.8827188271885 -980.00750007500051 436 65"
#!   ORDER="500000000000006"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="SampleValues" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_GRP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_HANDLING" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ATTR_TABLE" PARM_VALUE="tid tid  int64 REMOVE SampleValues SampleValues --Start&lt;space&gt;Sample&lt;space&gt;Feature&lt;space&gt;&lt;at&gt;Count&lt;openparen&gt;&lt;closeparen&gt;--&lt;lf&gt;&lt;at&gt;Value&lt;openparen&gt;SampleValues&lt;closeparen&gt;&lt;lf&gt;--End&lt;space&gt;Sample&lt;space&gt;Feature-- buffer SET_TO fme_feature_type fme_feature_type  char&lt;openparen&gt;50&lt;closeparen&gt; REMOVE _attr_name _attr_name  buffer REMOVE _attr_value _attr_value  buffer REMOVE"/>
#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE" PARM_VALUE="NO_OP"/>
#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="USER_EXPOSED_ATTRIBUTES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="USER_MODIFIED_ATTRIBUTE_TYPES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeManager"/>
#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_IS_LOOKUP="true" PARM_VALUE="No Substitution"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="15"
#!   TYPE="Aggregator"
#!   VERSION="18"
#!   POSITION="-548.502125021251 -980.00750007500051"
#!   BOUNDING_RECT="-548.502125021251 -980.00750007500051 436 65"
#!   ORDER="500000000000007"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="AGGREGATE"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="SampleValues" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="ACCUM_ATTRS" PARM_VALUE="All"/>
#!     <XFORM_PARM PARM_NAME="AGGREGATE_TYPE" PARM_VALUE="Homogeneous Collection (If Possible)"/>
#!     <XFORM_PARM PARM_NAME="ASSEMBLE_HIERARCHY_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="ASSEMBLE_ONE_LEVEL_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ATTR_ACCUM_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ATTR_TO_TRAIT" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AV" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CHILD_ID_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CONCAT_ATTRS" PARM_VALUE="SampleValues"/>
#!     <XFORM_PARM PARM_NAME="COUNT_ATTR" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CYCLE_ID_ERROR_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GENERATE_LIST_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="GEOM_LABEL_FIELD" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="GROUP_BY" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GROUP_BY_MODE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GROUP_PROCESSING_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="ID_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="ID_SELECTION" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="LIST_ATTRS_TO_INCLUDE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="LIST_ATTRS_TO_INCLUDE_MODE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="LIST_NAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="MODE" PARM_VALUE="Geometry - Assemble One Level"/>
#!     <XFORM_PARM PARM_NAME="OAN_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARENT_ID_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="PRESERVE_ID" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SEP" PARM_VALUE="&lt;lf&gt;&lt;lf&gt;"/>
#!     <XFORM_PARM PARM_NAME="SUM" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="WEIGHT" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Aggregator_2"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="18"
#!   TYPE="SubDocumentTransformer"
#!   VERSION="5"
#!   POSITION="234.37734377343781 -980.00750007500051"
#!   BOUNDING_RECT="234.37734377343781 -980.00750007500051 483.8125 65"
#!   ORDER="500000000000009"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="Output"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="Response" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="SampleValues" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="Rejected"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_ATTR ATTR_NAME="SampleValues" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_error" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_json_error{}.message" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_json_error{}.line" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_json_error{}.column" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_json_error{}.severity" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="JSON Error" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_PARM PARM_NAME="Action" PARM_VALUE="Text Generation"/>
#!     <XFORM_PARM PARM_NAME="Advanced" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CONNECTION_TIMEOUT_LENGTH" PARM_VALUE="60"/>
#!     <XFORM_PARM PARM_NAME="EmbeddingInput" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="EmbeddingModel" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="Embeddings" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="FileUpload" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="Input" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="JSONSchema" PARM_VALUE="&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;quote&gt;additionalProperties&lt;quote&gt;:&lt;space&gt;false&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;quote&gt;properties&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;Mapping&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;items&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;additionalProperties&lt;quote&gt;:&lt;space&gt;false&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;properties&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;APT_NUM&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;string&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;BLDGNAME&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;string&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;CITY&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;string&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;CNT_FIPS&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;string&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;CNT_NAME&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;string&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;ID&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;string&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;NEIGHBH&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;string&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;STATE&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;string&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;ST_NAME&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;string&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;ST_NUM&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;string&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;ZIP&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;string&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;required&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;APT_NUM&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;BLDGNAME&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;CITY&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;CNT_FIPS&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;CNT_NAME&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;ID&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;NEIGHBH&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;STATE&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;ST_NAME&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;ST_NUM&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;ZIP&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;object&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;array&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;tab&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;quote&gt;required&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;tab&gt;&lt;tab&gt;&lt;quote&gt;Mapping&lt;quote&gt;&lt;lf&gt;&lt;tab&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;lf&gt;&lt;tab&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;object&lt;quote&gt;&lt;lf&gt;&lt;closecurly&gt;&lt;lf&gt;"/>
#!     <XFORM_PARM PARM_NAME="MCP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="MCPTools" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RETRY_MAX_RETRIES" PARM_VALUE="0"/>
#!     <XFORM_PARM PARM_NAME="Reasoning" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="Request" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="SUB_DOC_NAME" PARM_VALUE="OpenAIConnector"/>
#!     <XFORM_PARM PARM_NAME="TRANSFER_TIMEOUT_LENGTH" PARM_VALUE="360"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="OpenAIConnector"/>
#!     <XFORM_PARM PARM_NAME="apiKey" PARM_VALUE="fme_decrypt(MDowfCN8I3xcG3GQ/TeRRUJUZ5LDPtdvpscbh7Nj9gG/INBkAGA+fkaDrNbhZtfa3rmkUUrCxKWaAFwiYsKgWJNl/0mRpxUuP+IT2c+Qhh26JEZtUWAmpuoaQCdQ3ykKWm2zaoAM5MBCGaGEuYe+6AS07/nLNRJwqp1jdwP1FgVCbXRvZtWfKjEZlNJYQ+EicVc6cv2DxCYJyTljvXwF8mKxenML6FKJiHARQCO8OMJidKKZQJP1SeYIhqB0YrtGw4cGV2ZquQKifvRjB2Tl6wBAWDmeCg+R1jvft1tR17SISyTDv77K+mV80w2aaUSgybbF7coM0BrQPcpehfjlW+YxV73+9mPMFXKQeznZ22T8MJor57O44p8U2NQCw35HiFBs0oVP9VkkY0D/WzGRevseyX1pIEWJSQSFwkJVhiyXavMDz5E5SEYgTZHfVeGBXCDuIEEbfRRkPU5yD2nw2ZAVimDRD7UQhEEY6PosGqU17He4y35WEfAggQ40+EKuupOQSZRsKotTTqlYGHJtX49ymuKqfyZzOAUSUzDMcj8gfDgzOCcuhw2sK3fJaMszp3aRL1jaTQxI7oim7nwtpepEVCVPq0CQ0uFICs1M6VG2GMVkkxJWvgTZuDq9PDqM23Y/T4fpL7jtR+DLYs6GukeOCfSeCC1Vz0tm1A8I7pBi3cIBo8KAw0q0E9i/G+ThmqA48dqYFtqHl+FQ5PIr8ZB396+byU3FLme3FQGPFPEjK5/yC50eCV+4XZGZy/j5x+2/qwnG2s+IeiyB+EZMH1qNmWmgW2OBoyskE37dnP23UoH3ff+4yqaATB5ATo45/Q8hQ8OK0DReTtknYWtDF5vBbcPavQbwv9vNz4/ItWiaNI/48N8ALD/HLmKqk7xrE+kM7EOUdjM/U3WQSOBzKjakF7Dfw8TO)"/>
#!     <XFORM_PARM PARM_NAME="effort" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="fileSearch" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="fileSearchUpload" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="instructions" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="maxOutputTokens" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="model" PARM_VALUE="gpt-5"/>
#!     <XFORM_PARM PARM_NAME="structuredOutput" PARM_VALUE="YES"/>
#!     <XFORM_PARM PARM_NAME="temperature" PARM_VALUE="1"/>
#!     <XFORM_PARM PARM_NAME="user" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="userPrompt" PARM_VALUE="You&lt;space&gt;are&lt;space&gt;a&lt;space&gt;bot&lt;space&gt;that&lt;space&gt;specializes&lt;space&gt;in&lt;space&gt;transforming&lt;space&gt;address&lt;space&gt;data&lt;space&gt;into&lt;space&gt;usable&lt;space&gt;information.&lt;space&gt;The&lt;space&gt;submitted&lt;space&gt;data&lt;space&gt;may&lt;space&gt;arrive&lt;space&gt;in&lt;space&gt;many&lt;space&gt;forms&lt;space&gt;including&lt;space&gt;a&lt;space&gt;single&lt;space&gt;address&lt;space&gt;attribute&lt;comma&gt;&lt;space&gt;multiple&lt;space&gt;attributes&lt;comma&gt;&lt;space&gt;etc.&lt;space&gt;Your&lt;space&gt;task&lt;space&gt;is&lt;space&gt;to&lt;space&gt;determine&lt;space&gt;the&lt;space&gt;attribute&lt;space&gt;mapping&lt;space&gt;required&lt;space&gt;based&lt;space&gt;on&lt;space&gt;the&lt;space&gt;attribute&lt;space&gt;name&lt;space&gt;and&lt;space&gt;sample&lt;space&gt;values&lt;space&gt;to&lt;space&gt;fit&lt;space&gt;the&lt;space&gt;new&lt;space&gt;schema&lt;space&gt;based&lt;space&gt;on&lt;space&gt;the&lt;space&gt;description&lt;space&gt;and&lt;space&gt;example&lt;space&gt;values&lt;space&gt;as&lt;space&gt;described&lt;space&gt;below:&lt;lf&gt;&lt;lf&gt;FIELD&lt;comma&gt;DESCRIPTION&lt;comma&gt;EXAMPLE&lt;lf&gt;ST_NUM&lt;comma&gt;&lt;quote&gt;Street&lt;space&gt;Number&lt;space&gt;&lt;openparen&gt;i.e.&lt;space&gt;house&lt;space&gt;number&lt;comma&gt;&lt;space&gt;address&lt;space&gt;number&lt;comma&gt;&lt;space&gt;etc&lt;closeparen&gt;&lt;quote&gt;&lt;comma&gt;125&lt;lf&gt;APT_NUM&lt;comma&gt;Apartment&lt;space&gt;Number&lt;comma&gt;#101&lt;lf&gt;BLDGNAME&lt;comma&gt;Building&lt;space&gt;Name&lt;comma&gt;BLDG&lt;space&gt;D&lt;lf&gt;ST_NAME&lt;comma&gt;&lt;quote&gt;Street&lt;space&gt;Name&lt;space&gt;and&lt;space&gt;Type&lt;space&gt;&lt;openparen&gt;Street&lt;comma&gt;&lt;space&gt;Avenue&lt;comma&gt;&lt;space&gt;etc.&lt;comma&gt;&lt;space&gt;can&lt;space&gt;be&lt;space&gt;abbreviated&lt;space&gt;but&lt;space&gt;expansion&lt;space&gt;of&lt;space&gt;abbreviations&lt;space&gt;is&lt;space&gt;preferred&lt;closeparen&gt;&lt;quote&gt;&lt;comma&gt;Powell&lt;space&gt;St&lt;lf&gt;NEIGHBH&lt;comma&gt;Neighborhood&lt;space&gt;Name&lt;comma&gt;Union&lt;space&gt;Square&lt;lf&gt;CITY&lt;comma&gt;City&lt;space&gt;Name&lt;comma&gt;San&lt;space&gt;Francisco&lt;lf&gt;STATE&lt;comma&gt;State&lt;space&gt;&lt;openparen&gt;Two&lt;space&gt;Letter&lt;space&gt;Abbreviation&lt;closeparen&gt;&lt;comma&gt;CA&lt;lf&gt;ZIP&lt;comma&gt;5-digit&lt;space&gt;zip&lt;space&gt;code&lt;comma&gt;94108&lt;lf&gt;CNT_NAME&lt;comma&gt;County&lt;space&gt;Name&lt;comma&gt;San&lt;space&gt;Francisco&lt;lf&gt;CNT_FIPS&lt;comma&gt;County&lt;space&gt;FIPS&lt;space&gt;6-4&lt;space&gt;code&lt;space&gt;&lt;openparen&gt;refer&lt;space&gt;to&lt;space&gt;Information&lt;space&gt;Technology&lt;space&gt;Laboratory&lt;closeparen&gt;&lt;comma&gt;06075f5&lt;lf&gt;ID&lt;comma&gt;A&lt;space&gt;unique&lt;space&gt;id&lt;space&gt;for&lt;space&gt;the&lt;space&gt;feature&lt;comma&gt;&lt;quote&gt;B1&lt;comma&gt;&lt;space&gt;B2&lt;comma&gt;&lt;space&gt;B3&lt;comma&gt;&lt;space&gt;etc&lt;quote&gt;&lt;lf&gt;&lt;lf&gt;&lt;lf&gt;--&lt;space&gt;Source&lt;space&gt;Data--&lt;lf&gt;&lt;at&gt;Value&lt;openparen&gt;SampleValues&lt;closeparen&gt;&lt;lf&gt;&lt;lf&gt;The&lt;space&gt;response&lt;space&gt;JSON&lt;space&gt;should&lt;space&gt;provide&lt;space&gt;the&lt;space&gt;attribute&lt;space&gt;name&lt;space&gt;that&lt;space&gt;corresponds&lt;space&gt;to&lt;space&gt;the&lt;space&gt;description&lt;space&gt;above&lt;comma&gt;&lt;space&gt;not&lt;space&gt;the&lt;space&gt;values&lt;space&gt;from&lt;space&gt;the&lt;space&gt;sample&lt;space&gt;features&lt;space&gt;provided&lt;space&gt;above.&lt;space&gt;Only&lt;space&gt;output&lt;space&gt;a&lt;space&gt;single&lt;space&gt;mapping&lt;comma&gt;&lt;space&gt;don&lt;apos&gt;t&lt;space&gt;give&lt;space&gt;me&lt;space&gt;multiple&lt;space&gt;arrays.&lt;lf&gt;"/>
#!     <XFORM_PARM PARM_NAME="vision" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="visionURL" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="visionURLPath" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="visionUploadFile" PARM_VALUE="&lt;Unused&gt;"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="20"
#!   TYPE="JSONFragmenter"
#!   VERSION="10"
#!   POSITION="865.63365633656349 -980.00750007500051"
#!   BOUNDING_RECT="865.63365633656349 -980.00750007500051 436 65"
#!   ORDER="500000000000010"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="FRAGMENTS"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="Response" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="SampleValues" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="json_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="json_index" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_ATTR ATTR_NAME="Response" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="SampleValues" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_PARM PARM_NAME="EXPLODE_FORMAT" PARM_VALUE="JSON"/>
#!     <XFORM_PARM PARM_NAME="EXTRACT_ATTR" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="FILEPATH_OR_URL" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="FLATTEN_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="INPUT_PORT_CONNECTED" PARM_VALUE="CONNECTED"/>
#!     <XFORM_PARM PARM_NAME="INPUT_SETTINGS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="JSON_ATTR" PARM_VALUE="Response"/>
#!     <XFORM_PARM PARM_NAME="JSON_QUERY" PARM_VALUE="&lt;space&gt;json&lt;openbracket&gt;&lt;quote&gt;Mapping&lt;quote&gt;&lt;closebracket&gt;&lt;openbracket&gt;*&lt;closebracket&gt;&lt;openbracket&gt;*&lt;closebracket&gt;"/>
#!     <XFORM_PARM PARM_NAME="NEW_ATTRIBUTES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PREF_STRING" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="READ_FROM_FILE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="RECURSIVE" PARM_VALUE="YES"/>
#!     <XFORM_PARM PARM_NAME="REJECT_EMPTY_LISTS" PARM_VALUE="YES"/>
#!     <XFORM_PARM PARM_NAME="RESULT_ATTRIBUTE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="JSONFragmenter"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="22"
#!   TYPE="AttributeManager"
#!   VERSION="5"
#!   POSITION="1415.639156391564 -980.00750007500051"
#!   BOUNDING_RECT="1415.639156391564 -980.00750007500051 436 65"
#!   ORDER="500000000000011"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="SOURCE" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="DESTINATION" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_GRP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_HANDLING" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ATTR_TABLE" PARM_VALUE="Response SOURCE  varchar&lt;openparen&gt;200&lt;closeparen&gt; RENAME_SET_VALUE SampleValues SampleValues  buffer REMOVE json_type json_type  buffer REMOVE json_index DESTINATION  uint32 RENAME_SET_VALUE"/>
#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE" PARM_VALUE="NO_OP"/>
#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="USER_EXPOSED_ATTRIBUTES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="USER_MODIFIED_ATTRIBUTE_TYPES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeManager_2"/>
#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_IS_LOOKUP="true" PARM_VALUE="No Substitution"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="24"
#!   TYPE="FeatureWriter"
#!   VERSION="0"
#!   POSITION="1950.0195001950024 -980.00750007500051"
#!   BOUNDING_RECT="1950.0195001950024 -980.00750007500051 436 65"
#!   ORDER="500000000000012"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="SUMMARY"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_feature_types{}.count" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_feature_types{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_dataset" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_total_features_written" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="CONFIG_PARAMETERS" PARM_VALUE="ESCAPE_COMMAS_IN_FTP_FORMAT_PARAMETERS,no"/>
#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_ADVANCED_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_COORDINATE_DETECTION_MODE" PARM_VALUE="automatic"/>
#!     <XFORM_PARM PARM_NAME="CSV2_COORDINATE_FIELDS_FROM_GEOM_GROUP" PARM_VALUE="YES"/>
#!     <XFORM_PARM PARM_NAME="CSV2_COORDINATE_SYSTEM" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_COORDINATE_SYSTEM_GRANULARITY" PARM_VALUE="FEATURE_TYPE"/>
#!     <XFORM_PARM PARM_NAME="CSV2_DATASET_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_DELIMITER" PARM_VALUE="&lt;comma&gt;"/>
#!     <XFORM_PARM PARM_NAME="CSV2_ENCODING" PARM_VALUE="UTF-8"/>
#!     <XFORM_PARM PARM_NAME="CSV2_ENCODING_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_EXISTING_FILE_HANDLING" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="CSV2_EXTENSION" PARM_VALUE="csv"/>
#!     <XFORM_PARM PARM_NAME="CSV2_FIELDS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_FIELD_QUALIFIER_CHARACTER" PARM_VALUE="&lt;quote&gt;"/>
#!     <XFORM_PARM PARM_NAME="CSV2_FIELD_QUALIFIER_ESCAPE_CHARACTER" PARM_VALUE="&lt;quote&gt;"/>
#!     <XFORM_PARM PARM_NAME="CSV2_QUALIFY_FIELD_NAMES" PARM_VALUE="if_needed"/>
#!     <XFORM_PARM PARM_NAME="CSV2_QUALIFY_FIELD_VALUES" PARM_VALUE="if_needed"/>
#!     <XFORM_PARM PARM_NAME="CSV2_ROW_TERMINATION" PARM_VALUE="System"/>
#!     <XFORM_PARM PARM_NAME="CSV2_SPATIAL_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_TREAT_EMBEDDED_FIELD_QUALIFIERS_AS_UNSAFE" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="CSV2_WRITE_BOM_FOR_UNICODE" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="CSV2_WRITE_FIELD_NAMES" PARM_VALUE="firstrow"/>
#!     <XFORM_PARM PARM_NAME="CSV2_WRITE_SCHEMA_FILE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="DATASET" PARM_VALUE="$(LUT_Output)"/>
#!     <XFORM_PARM PARM_NAME="DATASET_ATTR" PARM_VALUE="_dataset"/>
#!     <XFORM_PARM PARM_NAME="DYNGROUP_0" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="FEATURE_TYPES_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="FEATURE_TYPE_LIST_ATTR" PARM_VALUE="_feature_types"/>
#!     <XFORM_PARM PARM_NAME="FORMAT" PARM_VALUE="CSV2"/>
#!     <XFORM_PARM PARM_NAME="FORMAT_DIRECTIVES" PARM_VALUE="RUNTIME_MACROS,DATASET_GROUP&lt;comma&gt;&lt;comma&gt;EXTENSION&lt;comma&gt;csv&lt;comma&gt;EXISTING_FILE_HANDLING&lt;comma&gt;Yes&lt;comma&gt;FIELDS_GROUP&lt;comma&gt;&lt;comma&gt;DELIMITER&lt;comma&gt;&lt;lt&gt;comma&lt;gt&gt;&lt;comma&gt;WRITE_FIELD_NAMES&lt;comma&gt;firstrow&lt;comma&gt;ENCODING_GROUP&lt;comma&gt;&lt;comma&gt;ENCODING&lt;comma&gt;UTF-8&lt;comma&gt;WRITE_BOM_FOR_UNICODE&lt;comma&gt;Yes&lt;comma&gt;SPATIAL_GROUP&lt;comma&gt;&lt;comma&gt;COORDINATE_FIELDS_FROM_GEOM_GROUP&lt;comma&gt;YES&lt;comma&gt;COORDINATE_SYSTEM&lt;comma&gt;&lt;comma&gt;COORDINATE_DETECTION_MODE&lt;comma&gt;automatic&lt;comma&gt;X_FIELD_NAME&lt;comma&gt;&lt;lt&gt;Unused&lt;gt&gt;&lt;comma&gt;Y_FIELD_NAME&lt;comma&gt;&lt;lt&gt;Unused&lt;gt&gt;&lt;comma&gt;Z_FIELD_NAME&lt;comma&gt;&lt;lt&gt;Unused&lt;gt&gt;&lt;comma&gt;ADVANCED_GROUP&lt;comma&gt;&lt;comma&gt;QUALIFY_FIELD_NAMES&lt;comma&gt;if_needed&lt;comma&gt;QUALIFY_FIELD_VALUES&lt;comma&gt;if_needed&lt;comma&gt;UNQUALIFIED_FIELD_VALUE_HANDLING&lt;comma&gt;&lt;lt&gt;Unused&lt;gt&gt;&lt;comma&gt;TREAT_EMBEDDED_FIELD_QUALIFIERS_AS_UNSAFE&lt;comma&gt;Yes&lt;comma&gt;FIELD_QUALIFIER_CHARACTER&lt;comma&gt;&lt;lt&gt;quote&lt;gt&gt;&lt;comma&gt;FIELD_QUALIFIER_ESCAPE_CHARACTER&lt;comma&gt;&lt;lt&gt;quote&lt;gt&gt;&lt;comma&gt;ROW_TERMINATION&lt;comma&gt;System&lt;comma&gt;WRITE_SCHEMA_FILE&lt;comma&gt;NO&lt;comma&gt;EXISTING_SCHEMA_FILE_HANDLING&lt;comma&gt;&lt;lt&gt;Unused&lt;gt&gt;&lt;comma&gt;COORDINATE_SYSTEM_GRANULARITY&lt;comma&gt;FEATURE_TYPE&lt;comma&gt;NETWORK_AUTHENTICATION&lt;comma&gt;,METAFILE,CSV2"/>
#!     <XFORM_PARM PARM_NAME="FORMAT_PARAMS" PARM_VALUE="CSV2_EXTENSION,&quot;OPTIONAL TEXT&quot;,CSV2&lt;space&gt;Extension:,CSV2_COORDINATE_SYSTEM,&quot;OPTIONAL COORDSYS&quot;,CSV2&lt;space&gt;Coordinate&lt;space&gt;System:,CSV2_ENCODING,&quot;OPTIONAL STRING_OR_ENCODING fme-system%*&quot;,CSV2&lt;space&gt;Character&lt;space&gt;Encoding:,CSV2_ADVANCED_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_CLOSED%QUALIFY_FIELD_NAMES%QUALIFY_FIELD_VALUES%UNQUALIFIED_FIELD_VALUE_HANDLING%TREAT_EMBEDDED_FIELD_QUALIFIERS_AS_UNSAFE%FIELD_QUALIFIER_CHARACTER%FIELD_QUALIFIER_ESCAPE_CHARACTER%ROW_TERMINATION%WRITE_SCHEMA_FILE&quot;,CSV2&lt;space&gt;Advanced,CSV2_SPATIAL_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_OPEN%COORDINATE_FIELDS_FROM_GEOM_GROUP%&quot;,CSV2&lt;space&gt;Spatial,CSV2_WRITE_BOM_FOR_UNICODE,&quot;OPTIONAL CHOICE Yes%No&quot;,CSV2&lt;space&gt;Write&lt;space&gt;Byte&lt;space&gt;Order&lt;space&gt;Mark&lt;space&gt;for&lt;space&gt;Unicode:,CSV2_QUALIFY_FIELD_VALUES,&quot;OPTIONAL ACTIVECHOICE_LOOKUP Yes,yes,UNQUALIFIED_FIELD_VALUE_HANDLING%No,no%If&lt;space&gt;Needed,if_needed,UNQUALIFIED_FIELD_VALUE_HANDLING&quot;,CSV2&lt;space&gt;Qualify&lt;space&gt;Field&lt;space&gt;Values:,CSV2_COORDINATE_FIELDS_FROM_GEOM_GROUP,&quot;OPTIONAL ACTIVEDISCLOSUREGROUP COORDINATE_SYSTEM%COORDINATE_DETECTION_MODE%X_FIELD_NAME%Y_FIELD_NAME%Z_FIELD_NAME&quot;,CSV2&lt;space&gt;Populate&lt;space&gt;Coordinate&lt;space&gt;Fields&lt;space&gt;From&lt;space&gt;Point&lt;space&gt;Geometry,CSV2_ROW_TERMINATION,&quot;OPTIONAL CHOICE System%Windows%Unix%Macintosh&quot;,CSV2&lt;space&gt;Row&lt;space&gt;Termination:,CSV2_DATASET_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_OPEN%EXTENSION%EXISTING_FILE_HANDLING&quot;,CSV2&lt;space&gt;Dataset,CSV2_WRITE_SCHEMA_FILE,&quot;OPTIONAL ACTIVEDISCLOSUREGROUP FME_DISCLOSURE_CLOSED%EXISTING_SCHEMA_FILE_HANDLING&quot;,CSV2&lt;space&gt;Write&lt;space&gt;Schema&lt;space&gt;Configuration&lt;space&gt;File,CSV2_DELIMITER,&quot;OPTIONAL STRING_OR_CHOICE_ENCODED ,%;%|%space%tab&quot;,CSV2&lt;space&gt;Delimiter&lt;space&gt;Character:,CSV2_WRITE_FIELD_NAMES,&quot;OPTIONAL LOOKUP_CHOICE If&lt;space&gt;Writing&lt;space&gt;First&lt;space&gt;Row,firstrow%Yes,yes%No,no&quot;,CSV2&lt;space&gt;Write&lt;space&gt;Field&lt;space&gt;Names&lt;space&gt;Row:,CSV2_QUALIFY_FIELD_NAMES,&quot;OPTIONAL LOOKUP_CHOICE Yes,yes%No,no%If&lt;space&gt;Needed,if_needed&quot;,CSV2&lt;space&gt;Qualify&lt;space&gt;Field&lt;space&gt;Names:,CSV2_COORDINATE_SYSTEM_GRANULARITY,&quot;OPTIONAL NO_EDIT TEXT&quot;,CSV2&lt;space&gt;,CSV2_ENCODING_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_OPEN%ENCODING%WRITE_BOM_FOR_UNICODE&quot;,CSV2&lt;space&gt;Encoding,CSV2_FIELD_QUALIFIER_CHARACTER,&quot;OPTIONAL STRING_ENCODED&quot;,CSV2&lt;space&gt;Field&lt;space&gt;Qualifier&lt;space&gt;Character:,CSV2_EXISTING_FILE_HANDLING,&quot;OPTIONAL CHOICE Yes%No&quot;,CSV2&lt;space&gt;Overwrite&lt;space&gt;Existing&lt;space&gt;File:,CSV2_FIELD_QUALIFIER_ESCAPE_CHARACTER,&quot;OPTIONAL STRING_ENCODED&quot;,CSV2&lt;space&gt;Field&lt;space&gt;Qualifier&lt;space&gt;Escape&lt;space&gt;Character:,CSV2_COORDINATE_DETECTION_MODE,&quot;OPTIONAL ACTIVECHOICE_LOOKUP Automatic,automatic,X_FIELD_NAME,Y_FIELD_NAME,Z_FIELD_NAME%Manual,manual&quot;,CSV2&lt;space&gt;Coordinate&lt;space&gt;Field&lt;space&gt;Detection,CSV2_FIELDS_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_OPEN%DELIMITER%WRITE_FIELD_NAMES&quot;,CSV2&lt;space&gt;Fields,CSV2_TREAT_EMBEDDED_FIELD_QUALIFIERS_AS_UNSAFE,&quot;OPTIONAL CHOICE Yes%No&quot;,CSV2&lt;space&gt;Treat&lt;space&gt;Embedded&lt;space&gt;Field&lt;space&gt;Qualifiers&lt;space&gt;As&lt;space&gt;Unsafe:"/>
#!     <XFORM_PARM PARM_NAME="GROUP_BY" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GROUP_BY_MODE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GROUP_PROCESSING_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="MORE_SUMMARY_ATTRS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="NO_OUTPUT_PORTS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="OUTPUTPORTS_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_PORTS" PARM_VALUE="&quot;&quot;"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_PORTS_MODE" PARM_VALUE="NO_OUTPUT_PORTS"/>
#!     <XFORM_PARM PARM_NAME="PER_EACH_INPUT" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SELECTED_PORTS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SUMMARY_ATTRS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TOTAL_FEATURES_WRITTEN_ATTR" PARM_VALUE="_total_features_written"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="WRITER_DIRECTIVES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="WRITER_FEATURE_TYPE_PARAMS" PARM_VALUE="lookuptable:Output,ftp_feature_type_name,lookuptable,ftp_writer,CSV2,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,&lt;lt&gt;lt&lt;gt&gt;Unused&lt;lt&gt;gt&lt;gt&gt;,ftp_attribute_source,1,ftp_user_attributes,SOURCE&lt;comma&gt;varchar&lt;lt&gt;openparen&lt;gt&gt;200&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;DESTINATION&lt;comma&gt;varchar&lt;lt&gt;openparen&lt;gt&gt;200&lt;lt&gt;closeparen&lt;gt&gt;,ftp_user_attribute_values,&lt;comma&gt;,ftp_format_parameters,csv_dataset_group&lt;comma&gt;&lt;comma&gt;csv_existing_file_handling&lt;comma&gt;Yes&lt;comma&gt;csv_fields_group&lt;comma&gt;&lt;comma&gt;csv_write_field_names&lt;comma&gt;firstrow&lt;comma&gt;csv_types_group&lt;comma&gt;&lt;comma&gt;csv_date_output_format&lt;comma&gt;ISO"/>
#!     <XFORM_PARM PARM_NAME="WRITER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="WRITER_METAFILE" PARM_VALUE="ATTRIBUTE_CASE,ANY,ATTRIBUTE_INVALID_CHARS,,ATTRIBUTE_LENGTH,255,ATTR_TYPE_MAP,string&lt;comma&gt;fme_buffer&lt;comma&gt;string&lt;comma&gt;fme_binarybuffer&lt;comma&gt;string&lt;comma&gt;fme_xml&lt;comma&gt;string&lt;comma&gt;fme_json&lt;comma&gt;varchar&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;fme_varchar&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;varchar&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;fme_varbinary&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;varchar&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;fme_char&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;varchar&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;fme_binary&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;datetime&lt;comma&gt;fme_datetime&lt;comma&gt;time&lt;comma&gt;fme_time&lt;comma&gt;date&lt;comma&gt;fme_date&lt;comma&gt;string&lt;comma&gt;fme_real64&lt;comma&gt;real64&lt;comma&gt;fme_real64&lt;comma&gt;x_coordinate&lt;comma&gt;fme_real64&lt;comma&gt;y_coordinate&lt;comma&gt;fme_real64&lt;comma&gt;z_coordinate&lt;comma&gt;fme_real64&lt;comma&gt;string&lt;comma&gt;fme_real32&lt;comma&gt;real32&lt;comma&gt;fme_real32&lt;comma&gt;string&lt;comma&gt;fme_int64&lt;comma&gt;int64&lt;comma&gt;fme_int64&lt;comma&gt;string&lt;comma&gt;fme_int32&lt;comma&gt;int32&lt;comma&gt;fme_int32&lt;comma&gt;string&lt;comma&gt;fme_int16&lt;comma&gt;int16&lt;comma&gt;fme_int16&lt;comma&gt;string&lt;comma&gt;fme_int8&lt;comma&gt;int8&lt;comma&gt;fme_int8&lt;comma&gt;string&lt;comma&gt;fme_uint64&lt;comma&gt;uint64&lt;comma&gt;fme_uint64&lt;comma&gt;string&lt;comma&gt;fme_uint32&lt;comma&gt;uint32&lt;comma&gt;fme_uint32&lt;comma&gt;string&lt;comma&gt;fme_uint16&lt;comma&gt;uint16&lt;comma&gt;fme_uint16&lt;comma&gt;string&lt;comma&gt;fme_uint8&lt;comma&gt;uint8&lt;comma&gt;fme_uint8&lt;comma&gt;string&lt;comma&gt;fme_boolean&lt;comma&gt;boolean&lt;comma&gt;fme_boolean&lt;comma&gt;&lt;quote&gt;number&lt;openparen&gt;width&lt;comma&gt;decimal&lt;closeparen&gt;&lt;quote&gt;&lt;comma&gt;&lt;quote&gt;fme_decimal&lt;openparen&gt;width&lt;comma&gt;decimal&lt;closeparen&gt;&lt;quote&gt;,DEST_ILLEGAL_ATTR_LIST,,FEATURE_TYPE_CASE,ANY,FEATURE_TYPE_INVALID_CHARS,&lt;quote&gt;:?*&lt;lt&gt;&lt;gt&gt;&lt;pipe&gt;,FEATURE_TYPE_LENGTH,0,FEATURE_TYPE_LENGTH_INCLUDES_PREFIX,false,FEATURE_TYPE_RESERVED_WORDS,,FORMAT_METAFILE,$(FME_HOME_ENCODED)metafile&lt;backslash&gt;CSV2.fmf,FORMAT_NAME,CSV2,GEOM_MAP,csv_none&lt;comma&gt;fme_no_geom&lt;comma&gt;csv_point&lt;comma&gt;fme_point&lt;comma&gt;csv_none&lt;comma&gt;fme_line&lt;comma&gt;csv_none&lt;comma&gt;fme_polygon&lt;comma&gt;csv_none&lt;comma&gt;fme_text&lt;comma&gt;csv_none&lt;comma&gt;fme_ellipse&lt;comma&gt;csv_none&lt;comma&gt;fme_arc&lt;comma&gt;csv_none&lt;comma&gt;fme_rectangle&lt;comma&gt;csv_none&lt;comma&gt;fme_rounded_rectangle&lt;comma&gt;fme_no_map&lt;comma&gt;fme_no_geom&lt;comma&gt;csv_none&lt;comma&gt;fme_collection&lt;comma&gt;csv_none&lt;comma&gt;fme_raster&lt;comma&gt;csv_none&lt;comma&gt;fme_surface&lt;comma&gt;csv_none&lt;comma&gt;fme_solid&lt;comma&gt;csv_none&lt;comma&gt;fme_point_cloud&lt;comma&gt;csv_none&lt;comma&gt;fme_voxel_grid,READER_ATTR_INDEX_TYPES,,READER_FORMAT_TYPE,DYNAMIC,READER_USES_DEF,yes,SOURCE,no,SUPPORTS_FEAT_TYPE_FANOUT,yes,SUPPORTS_MULTI_GEOM,yes,WORKBENCH_CANNED_SCHEMA,,WRITER,CSV2,WRITER_ATTR_INDEX_TYPES,,WRITER_DEFLINE_PARMS,&lt;quote&gt;GUI&lt;space&gt;NAMEDGROUP&lt;space&gt;csv_dataset_group&lt;space&gt;csv_existing_file_handling&lt;space&gt;Dataset&lt;quote&gt;&lt;comma&gt;&lt;comma&gt;&lt;quote&gt;GUI&lt;space&gt;CHOICE&lt;space&gt;csv_existing_file_handling&lt;space&gt;Yes%No&lt;space&gt;Overwrite&lt;space&gt;Existing&lt;space&gt;File&lt;quote&gt;&lt;comma&gt;Yes&lt;comma&gt;&lt;quote&gt;GUI&lt;space&gt;NAMEDGROUP&lt;space&gt;csv_fields_group&lt;space&gt;csv_write_field_names&lt;space&gt;Fields&lt;quote&gt;&lt;comma&gt;&lt;comma&gt;&lt;quote&gt;GUI&lt;space&gt;LOOKUP_CHOICE&lt;space&gt;csv_write_field_names&lt;space&gt;If&lt;lt&gt;space&lt;gt&gt;Writing&lt;lt&gt;space&lt;gt&gt;First&lt;lt&gt;space&lt;gt&gt;Row&lt;comma&gt;firstrow%Yes&lt;comma&gt;yes%No&lt;comma&gt;no&lt;space&gt;Write&lt;space&gt;Field&lt;space&gt;Names&lt;space&gt;Row&lt;quote&gt;&lt;comma&gt;firstrow&lt;comma&gt;&lt;quote&gt;GUI&lt;space&gt;NAMEDGROUP&lt;space&gt;csv_types_group&lt;space&gt;csv_date_output_format&lt;space&gt;Types&lt;quote&gt;&lt;comma&gt;&lt;comma&gt;&lt;quote&gt;GUI&lt;space&gt;STRING_OR_LOOKUP_CHOICE_ENCODED&lt;space&gt;csv_date_output_format&lt;space&gt;&lt;quote&gt;&lt;quote&gt;&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;FME&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;auto&lt;lt&gt;space&lt;gt&gt;format&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;FME&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;ISO&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;auto&lt;lt&gt;space&lt;gt&gt;format&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;ISO&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%Y%m%d&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;FME&lt;lt&gt;space&lt;gt&gt;date&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%Y%m%d&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%H%M%S&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;FME&lt;lt&gt;space&lt;gt&gt;time&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%H%M%S&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%H%M%S%z&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;FME&lt;lt&gt;space&lt;gt&gt;time&lt;lt&gt;space&lt;gt&gt;with&lt;lt&gt;space&lt;gt&gt;offset&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%H%M%S%z&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%Y%m%d%H%M%S&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;FME&lt;lt&gt;space&lt;gt&gt;datetime&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%Y%m%d%H%M%S&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%Y%m%d%H%M%S%z&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;FME&lt;lt&gt;space&lt;gt&gt;datetime&lt;lt&gt;space&lt;gt&gt;with&lt;lt&gt;space&lt;gt&gt;offset&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%Y%m%d%H%M%S%z&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%Y-%m-%d&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;ISO&lt;lt&gt;space&lt;gt&gt;date&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%Y-%m-%d&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%H:%M:%S&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;ISO&lt;lt&gt;space&lt;gt&gt;time&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%H:%M:%S&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%H:%M:%S%Ez&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;ISO&lt;lt&gt;space&lt;gt&gt;time&lt;lt&gt;space&lt;gt&gt;with&lt;lt&gt;space&lt;gt&gt;offset&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%H:%M:%S%Ez&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%Y-%m-%dT%H:%M:%S&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;ISO&lt;lt&gt;space&lt;gt&gt;datetime&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%Y-%m-%dT%H:%M:%S&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%Y-%m-%dT%H:%M:%S%Ez&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;ISO&lt;lt&gt;space&lt;gt&gt;datetime&lt;lt&gt;space&lt;gt&gt;with&lt;lt&gt;space&lt;gt&gt;offset&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%Y-%m-%dT%H:%M:%S%Ez&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%Y-W%W-%u&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;ISO&lt;lt&gt;space&lt;gt&gt;week&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%Y-W%W-%u&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%Y-%j&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;ISO&lt;lt&gt;space&lt;gt&gt;ordinal&lt;lt&gt;space&lt;gt&gt;date&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%Y-%j&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%Y:%m:%d&lt;lt&gt;space&lt;gt&gt;%H:%M:%S&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;Exif&lt;lt&gt;space&lt;gt&gt;datetime&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%Y:%m:%d%H:%M:%S&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%d&lt;solidus&gt;%m&lt;solidus&gt;%Y&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%d.%m.%Y&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%B&lt;lt&gt;space&lt;gt&gt;%e&lt;lt&gt;comma&lt;gt&gt;&lt;lt&gt;space&lt;gt&gt;%Y&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%b-%e-%Y&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%I:%M:%S%p&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%s&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;Epoch&lt;lt&gt;space&lt;gt&gt;Time&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%s&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;%Es&lt;lt&gt;space&lt;gt&gt;&lt;lt&gt;openparen&lt;gt&gt;Unzoned&lt;lt&gt;space&lt;gt&gt;Epoch&lt;lt&gt;space&lt;gt&gt;Time&lt;lt&gt;closeparen&lt;gt&gt;&lt;comma&gt;%Es&lt;backslash&gt;&lt;quote&gt;&lt;quote&gt;&lt;quote&gt;&lt;quote&gt;&lt;space&gt;Date&lt;space&gt;Output&lt;space&gt;Format&lt;quote&gt;&lt;comma&gt;ISO,WRITER_DEF_LINE_TEMPLATE,&lt;opencurly&gt;FME_GEN_GROUP_NAME&lt;closecurly&gt;&lt;comma&gt;csv_existing_file_handling&lt;comma&gt;Yes&lt;comma&gt;csv_write_field_names&lt;comma&gt;firstrow&lt;comma&gt;csv_date_output_format&lt;comma&gt;ISO,WRITER_FORMAT_PARAMETER,ADVANCED_PARMS&lt;comma&gt;&lt;quote&gt;CSV2_OUT_QUALIFY_FIELD_NAMES&lt;space&gt;CSV2_OUT_QUALIFY_FIELD_VALUES&lt;space&gt;CSV2_OUT_FIELD_QUALIFIER_CHARACTER&lt;space&gt;CSV2_OUT_FIELD_QUALIFIER_ESCAPE_CHARACTER&lt;space&gt;CSV2_OUT_ROW_TERMINATION&lt;space&gt;CSV2_OUT_WRITE_SCHEMA_FILE&lt;space&gt;CSV2_OUT_EXISTING_SCHEMA_FILE_HANDLING&lt;quote&gt;&lt;comma&gt;DEFAULT_ATTR_TYPE&lt;comma&gt;string&lt;comma&gt;FEATURE_TYPE_NAME&lt;comma&gt;&lt;quote&gt;CSV&lt;space&gt;File&lt;quote&gt;&lt;comma&gt;FEATURE_TYPE_DEFAULT_NAME&lt;comma&gt;File1&lt;comma&gt;READER_DATASET_HINT&lt;comma&gt;&lt;quote&gt;Select&lt;space&gt;the&lt;space&gt;CSV&lt;space&gt;file&lt;openparen&gt;s&lt;closeparen&gt;&lt;quote&gt;&lt;comma&gt;WRITER_DATASET_HINT&lt;comma&gt;&lt;quote&gt;Specify&lt;space&gt;a&lt;space&gt;folder&lt;space&gt;for&lt;space&gt;the&lt;space&gt;CSV&lt;space&gt;file&lt;quote&gt;&lt;comma&gt;ATTRIBUTE_READING&lt;comma&gt;DEFLINE,WRITER_FORMAT_TYPE,DYNAMIC,WRITER_HAS_DEFLINE_ATTRS,yes,WRITER_USES_DEF,yes"/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="FeatureWriter"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="26"
#!   TYPE="FeatureReader"
#!   VERSION="17"
#!   POSITION="2543.775437754377 -980.00750007500051"
#!   BOUNDING_RECT="2543.775437754377 -980.00750007500051 436 65"
#!   ORDER="500000000000013"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="&lt;SCHEMA&gt;"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_feature_types{}.count" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_feature_types{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_dataset" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_total_features_written" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="fme_feature_type_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="attribute{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="attribute{}.fme_data_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="attribute{}.native_data_type" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="fme_format_short_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="fme_format_long_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="fme_schema_handling" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="&lt;OTHER&gt;"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <OUTPUT_FEAT NAME="INITIATOR"/>
#!     <FEAT_COLLAPSED COLLAPSED="2"/>
#!     <XFORM_ATTR ATTR_NAME="_feature_types{}.count" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_feature_types{}.name" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_dataset" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_total_features_written" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_matched_records" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
#!     <FEAT_COLLAPSED COLLAPSED="3"/>
#!     <XFORM_ATTR ATTR_NAME="_feature_types{}.count" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_feature_types{}.name" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_dataset" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_total_features_written" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_reader_error" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_PARM PARM_NAME="ATTRIBUTES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_TYPES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ATTRS_TO_EXPOSE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ATTR_ACCUM_MODE" PARM_VALUE="Only Use Result"/>
#!     <XFORM_PARM PARM_NAME="ATTR_CONFLICT_RES" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="ATTR_IGNORE_NULLS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="ATTR_PREFIX" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AVAILABLE_FEATURE_TYPES" PARM_VALUE="_FEATUREREADER_OPTIONAL_FTTR_"/>
#!     <XFORM_PARM PARM_NAME="CACHE_TIMEOUT_HRS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIP_TO_ENVELOPE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="COMBINE_GEOM" PARM_VALUE="Use Result"/>
#!     <XFORM_PARM PARM_NAME="CONSTRAINTS_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="DATASET" PARM_VALUE="$(SourceDataset_GENERIC)"/>
#!     <XFORM_PARM PARM_NAME="DYNGROUP_0" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ENABLE_CACHE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="FEATURETYPES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="FORCE_REFRESH_OUTPUTS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="FORMAT" PARM_VALUE="GENERIC"/>
#!     <XFORM_PARM PARM_NAME="FORMAT_ATTRIBUTE_TYPES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="FORMAT_DIRECTIVES" PARM_VALUE="METAFILE,GENERIC"/>
#!     <XFORM_PARM PARM_NAME="FORMAT_PARAMS" PARM_VALUE="GENERIC_COORDINATE_SYSTEM,&quot;OPTIONAL COORDSYS&quot;,GENERIC&lt;space&gt;Coordinate&lt;space&gt;System:,GENERIC_REAL_FORMAT,&quot;OPTIONAL READERPICK&quot;,GENERIC&lt;space&gt;Input&lt;space&gt;Format:,GENERIC_SPATIAL_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_OPEN%COORDINATE_SYSTEM&quot;,GENERIC&lt;space&gt;Spatial,GENERIC_EXPOSE_ATTRS_GROUP,&quot;OPTIONAL DISCLOSUREGROUP GENERIC_EXPOSE_FORMAT_ATTRS&quot;,GENERIC&lt;space&gt;Schema&lt;space&gt;Attributes,GENERIC_GENERIC_EXPOSE_FORMAT_ATTRS,&quot;OPTIONAL LITERAL EXPOSED_ATTRS GENERIC%Source&quot;,GENERIC&lt;space&gt;Additional&lt;space&gt;Attributes&lt;space&gt;to&lt;space&gt;Expose:"/>
#!     <XFORM_PARM PARM_NAME="FTTR_SEPARATOR" PARM_VALUE="SPACE"/>
#!     <XFORM_PARM PARM_NAME="GENERIC_COORDINATE_SYSTEM" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="GENERIC_EXPOSE_ATTRS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="GENERIC_GENERIC_EXPOSE_FORMAT_ATTRS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="GENERIC_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="GENERIC_REAL_FORMAT" PARM_VALUE="GUESS_FROM_EXTENSION"/>
#!     <XFORM_PARM PARM_NAME="GENERIC_SPATIAL_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="GEOMETRY_TYPES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="INITIATOR_FIRST_OUTPUT" PARM_VALUE="default"/>
#!     <XFORM_PARM PARM_NAME="INPUT_PORT_INITIATOR_CONNECTED" PARM_VALUE="CONNECTED"/>
#!     <XFORM_PARM PARM_NAME="INTERACT" PARM_VALUE="NONE"/>
#!     <XFORM_PARM PARM_NAME="MAX_FEATURES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="MERGE_HANDLING_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ORDER_RESULTS" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="OUTPUTPORTS_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_ADD_SCHEMA_ATTRIBUTES" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_FEATURES_DISPLAY" PARM_VALUE="Schema and Data Features"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_FEATURES_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_PORTS_MODE" PARM_VALUE="SINGLE_PORT"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_USE_SCHEMA_CACHE" PARM_VALUE="YES"/>
#!     <XFORM_PARM PARM_NAME="PORTS_FROM_FTTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="READER_BEHAVIOR" PARM_VALUE="Constraint Parameters"/>
#!     <XFORM_PARM PARM_NAME="READER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="READ_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="SELECTED_PORTS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SINGLE_PORT" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="SUPPORTED_SPATIAL_INTERACTIONS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="USER_QUERY" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="WHERE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="FeatureReader"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="28"
#!   TYPE="SchemaMapper"
#!   VERSION="3"
#!   POSITION="3113.8704244185287 -980.00750007500051"
#!   BOUNDING_RECT="3113.8704244185287 -980.00750007500051 436 65"
#!   ORDER="500000000000014"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="MAPPED"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_schemamapper_row_ids" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="UNMAPPED"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_PARM PARM_NAME="ADVANCED_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_ADVANCED_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_BUILD_POINTS_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="CSV2_CASE_SENSITIVE_FIELD_NAMES" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="CSV2_CHUNK_SIZE" PARM_VALUE="100000"/>
#!     <XFORM_PARM PARM_NAME="CSV2_CSV2_EXPOSE_FORMAT_ATTRS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_DATASET_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_DATA_START_LINE" PARM_VALUE="2"/>
#!     <XFORM_PARM PARM_NAME="CSV2_DATE_INPUT_FORMAT" PARM_VALUE="ISO"/>
#!     <XFORM_PARM PARM_NAME="CSV2_DELIMITER" PARM_VALUE="auto"/>
#!     <XFORM_PARM PARM_NAME="CSV2_DELIMITER_DETECTION_ALGORITHM" PARM_VALUE="EQUAL_FIELDS_PER_LINE"/>
#!     <XFORM_PARM PARM_NAME="CSV2_ENCODING" PARM_VALUE="windows-1252"/>
#!     <XFORM_PARM PARM_NAME="CSV2_ENCODING_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_ENFORCE_STRICT_SCHEMA" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="CSV2_EXPLICIT_GEOMETRY_ATTRIBUTES" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="CSV2_EXPOSE_ATTRS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_FEATURE_TYPE_NAME" PARM_VALUE="FORMAT_NAME"/>
#!     <XFORM_PARM PARM_NAME="CSV2_FIELDS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_FIELD_NAMES_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_FIELD_NAMES_LINE" PARM_VALUE="1"/>
#!     <XFORM_PARM PARM_NAME="CSV2_FIELD_QUALIFIER_CHARACTER" PARM_VALUE="&lt;quote&gt;"/>
#!     <XFORM_PARM PARM_NAME="CSV2_FIELD_QUALIFIER_ESCAPE_CHARACTER" PARM_VALUE="&lt;quote&gt;"/>
#!     <XFORM_PARM PARM_NAME="CSV2_FIELD_SEPARATION_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_FIELD_VALUES_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_PRESERVE_SOURCE_ENCODING" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="CSV2_PREVIEW_PLACEHOLDER" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="CSV2_READ_EMPTY_VALUES_AS" PARM_VALUE="Null"/>
#!     <XFORM_PARM PARM_NAME="CSV2_READ_SKIPPED_LINES" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="CSV2_REPLACE_ATTR_NAME_INVALID_CHARS" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="CSV2_SCAN_ADDITIONAL_FIELDS" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="CSV2_SCAN_MAX_ROWS" PARM_VALUE="250000"/>
#!     <XFORM_PARM PARM_NAME="CSV2_SCAN_TYPES" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="CSV2_SCHEMA" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_SCHEMA_GENERATION_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_SKIPPED_LINES_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_SKIP_DUPLICATE_DELIMITERS" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="CSV2_SPATIAL_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CSV2_STRING_TYPE_ATTRIBUTE_HANDLING" PARM_VALUE="EXPLICIT_WIDTH"/>
#!     <XFORM_PARM PARM_NAME="CSV2_SUPPORTED_READER_ARCHIVE_EXTENSIONS" PARM_VALUE="csv.gz,txt.gz"/>
#!     <XFORM_PARM PARM_NAME="CSV2_TRIM_FEATURE_TYPE_NAME" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="CSV2_TRIM_FIELD_NAME_QUALIFIERS" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="CSV2_TRIM_FIELD_NAME_WHITESPACE" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="CSV2_TRIM_FIELD_VALUE_QUALIFIERS" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="CSV2_TRIM_FIELD_VALUE_WHITESPACE" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="CSV2_TYPE_ATTRIBUTE_HANDLING" PARM_VALUE="STANDARD_TYPES"/>
#!     <XFORM_PARM PARM_NAME="CSV2_USE_CUSTOM_SCHEMA" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="DATASET" PARM_VALUE="$(LUTPATH)"/>
#!     <XFORM_PARM PARM_NAME="DYNGROUP_0" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="FEATURE_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="FORMAT" PARM_VALUE="CSV2"/>
#!     <XFORM_PARM PARM_NAME="FORMAT_PARAMS" PARM_VALUE="CSV2_TRIM_FEATURE_TYPE_NAME,&quot;IGNORE TEXT&quot;,CSV2&lt;space&gt;,CSV2_REPLACE_ATTR_NAME_INVALID_CHARS,&quot;IGNORE TEXT&quot;,CSV2&lt;space&gt;,CSV2_SUPPORTED_READER_ARCHIVE_EXTENSIONS,&quot;IGNORE TEXT&quot;,CSV2&lt;space&gt;,CSV2_DELIMITER_DETECTION_ALGORITHM,&quot;IGNORE TEXT&quot;,CSV2&lt;space&gt;,CSV2_EXPLICIT_GEOMETRY_ATTRIBUTES,&quot;IGNORE TEXT&quot;,CSV2&lt;space&gt;,CSV2_DATASET_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_OPEN%FEATURE_TYPE_NAME&quot;,CSV2&lt;space&gt;Dataset&lt;space&gt;Parameters,CSV2_FEATURE_TYPE_NAME,&quot;OPTIONAL LOOKUP_CHOICE From&lt;space&gt;Format&lt;space&gt;Name,FORMAT_NAME%From&lt;space&gt;File&lt;space&gt;Name&lt;openparen&gt;s&lt;closeparen&gt;,FILE_NAME&quot;,CSV2&lt;space&gt;Feature&lt;space&gt;Type&lt;space&gt;Name&lt;openparen&gt;s&lt;closeparen&gt;:,CSV2_FIELDS_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_OPEN%DELIMITER%FIELD_NAMES_LINE%DATA_START_LINE&quot;,CSV2&lt;space&gt;Fields,CSV2_DELIMITER,&quot;OPTIONAL STRING_OR_CHOICE_ENCODED auto%,%;%|%space%tab&quot;,CSV2&lt;space&gt;Delimiter&lt;space&gt;Character:,CSV2_FIELD_NAMES_LINE,&quot;OPTIONAL INT_OR_CHOICE None%1%2%3%4%5&quot;,CSV2&lt;space&gt;Field&lt;space&gt;Names&lt;space&gt;Line:,CSV2_DATA_START_LINE,&quot;OPTIONAL RANGE_SLIDER 1%MAX%0&quot;,CSV2&lt;space&gt;Data&lt;space&gt;Start&lt;space&gt;Line:,CSV2_PREVIEW_PLACEHOLDER,&quot;OPTIONAL GUI_LINE_TABLE NO_LABEL%&quot;&quot;&quot;&quot;%STRING&quot;,CSV2&lt;space&gt;Preview,CSV2_USE_CUSTOM_SCHEMA,&quot;OPTIONAL RADIO_GROUP 2%Automatic,NO%Manual,YES&quot;,CSV2&lt;space&gt;Attribute&lt;space&gt;Definition,CSV2_SCHEMA,&quot;OPTIONAL GUI_LINE_TABLE NO_MOVE%NO_ADD%NO_LABEL%ROW_DELIM:;%COL_DELIM:,%STRETCH_COL:1%COL_DISPLAY_ORDER:2,0,1%&quot;&quot;Name&quot;&quot;%&quot;&quot;STRING_READONLY_ENCODED ATTRIBUTE_NAME&quot;&quot;%&quot;&quot;Type&quot;&quot;%&quot;&quot;LOOKUP_CHOICE_ENCODED TYPE boolean%int8%int16%int32%int64%uint8%uint16%uint32%uint64%real32%real64%string%x_coordinate%y_coordinate%z_coordinate%date%time%datetime%number%varchar&quot;&quot;%&quot;&quot;Read&quot;&quot;%&quot;&quot;CHECKBOX READ YES%NO&quot;&quot;&quot;,CSV2&lt;space&gt;Attributes:,CSV2_EXPOSE_ATTRS_GROUP,&quot;OPTIONAL DISCLOSUREGROUP CSV2_EXPOSE_FORMAT_ATTRS&quot;,CSV2&lt;space&gt;Schema&lt;space&gt;Attributes,CSV2_CSV2_EXPOSE_FORMAT_ATTRS,&quot;IGNORE TEXT&quot;,CSV2&lt;space&gt;Additional&lt;space&gt;Attributes&lt;space&gt;to&lt;space&gt;Expose:,CSV2_SPATIAL_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_OPEN%BUILD_POINTS_GROUP%COORDINATE_SYSTEM&quot;,CSV2&lt;space&gt;Spatial,CSV2_BUILD_POINTS_GROUP,&quot;OPTIONAL ACTIVEDISCLOSUREGROUP X_ATTR%Y_ATTR%Z_ATTR%++NO+COORDINATE_SYSTEM+disableParameter&quot;,CSV2&lt;space&gt;Create&lt;space&gt;Point&lt;space&gt;Geometry&lt;space&gt;From&lt;space&gt;Attributes,CSV2_QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS,&quot;IGNORE TEXT&quot;,CSV2&lt;space&gt;,CSV2_CHUNK_SIZE,&quot;IGNORE TEXT&quot;,CSV2&lt;space&gt;,CSV2_ADVANCED_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_CLOSED%FIELD_SEPARATION_GROUP%FIELD_NAMES_GROUP%FIELD_VALUES_GROUP%ENCODING_GROUP%SKIPPED_LINES_GROUP%SCHEMA_GENERATION_GROUP&quot;,CSV2&lt;space&gt;Advanced,CSV2_FIELD_SEPARATION_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_CLOSED%SKIP_DUPLICATE_DELIMITERS%FIELD_QUALIFIER_CHARACTER%FIELD_QUALIFIER_ESCAPE_CHARACTER&quot;,CSV2&lt;space&gt;Field&lt;space&gt;Separation,CSV2_SKIP_DUPLICATE_DELIMITERS,&quot;OPTIONAL CHOICE Yes%No&quot;,CSV2&lt;space&gt;Skip&lt;space&gt;Duplicate&lt;space&gt;Delimiters:,CSV2_FIELD_QUALIFIER_CHARACTER,&quot;OPTIONAL STRING_ENCODED&quot;,CSV2&lt;space&gt;Field&lt;space&gt;Qualifier&lt;space&gt;Character:,CSV2_FIELD_QUALIFIER_ESCAPE_CHARACTER,&quot;OPTIONAL STRING_ENCODED&quot;,CSV2&lt;space&gt;Field&lt;space&gt;Qualifier&lt;space&gt;Escape&lt;space&gt;Character:,CSV2_FIELD_NAMES_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_CLOSED%CASE_SENSITIVE_FIELD_NAMES%ENFORCE_STRICT_SCHEMA%TRIM_FIELD_NAME_WHITESPACE&quot;,CSV2&lt;space&gt;Field&lt;space&gt;Names,CSV2_CASE_SENSITIVE_FIELD_NAMES,&quot;OPTIONAL CHOICE Yes%No&quot;,CSV2&lt;space&gt;Case&lt;space&gt;Sensitive&lt;space&gt;Field&lt;space&gt;Names:,CSV2_ENFORCE_STRICT_SCHEMA,&quot;OPTIONAL CHOICE Yes%No&quot;,CSV2&lt;space&gt;Enforce&lt;space&gt;Strict&lt;space&gt;Schema:,CSV2_TRIM_FIELD_NAME_WHITESPACE,&quot;OPTIONAL CHOICE Yes%No&quot;,CSV2&lt;space&gt;Trim&lt;space&gt;Whitespaces&lt;space&gt;From&lt;space&gt;Field&lt;space&gt;Names:,CSV2_FIELD_VALUES_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_CLOSED%TRIM_FIELD_VALUE_QUALIFIERS%READ_EMPTY_VALUES_AS%TRIM_FIELD_VALUE_WHITESPACE&quot;,CSV2&lt;space&gt;Field&lt;space&gt;Values,CSV2_TRIM_FIELD_VALUE_QUALIFIERS,&quot;OPTIONAL CHOICE Yes%No&quot;,CSV2&lt;space&gt;Trim&lt;space&gt;Field&lt;space&gt;Qualifier&lt;space&gt;Characters:,CSV2_READ_EMPTY_VALUES_AS,&quot;OPTIONAL CHOICE Missing%Null&quot;,CSV2&lt;space&gt;Read&lt;space&gt;Empty&lt;space&gt;Values&lt;space&gt;As:,CSV2_TRIM_FIELD_VALUE_WHITESPACE,&quot;OPTIONAL CHOICE Yes%No&quot;,CSV2&lt;space&gt;Trim&lt;space&gt;Whitespaces&lt;space&gt;From&lt;space&gt;Field&lt;space&gt;Values:,CSV2_ENCODING_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_CLOSED%ENCODING%PRESERVE_SOURCE_ENCODING&quot;,CSV2&lt;space&gt;Encoding,CSV2_ENCODING,&quot;OPTIONAL STRING_OR_ENCODING fme-system%*&quot;,CSV2&lt;space&gt;Character&lt;space&gt;Encoding:,CSV2_PRESERVE_SOURCE_ENCODING,&quot;OPTIONAL CHOICE Yes%No&quot;,CSV2&lt;space&gt;Preserve&lt;space&gt;Source&lt;space&gt;Encoding:,CSV2_SKIPPED_LINES_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_CLOSED%READ_SKIPPED_LINES&quot;,CSV2&lt;space&gt;Skipped&lt;space&gt;Lines,CSV2_READ_SKIPPED_LINES,&quot;OPTIONAL CHOICE Yes%No&quot;,CSV2&lt;space&gt;Read&lt;space&gt;Skipped&lt;space&gt;Lines:,CSV2_SCHEMA_GENERATION_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_CLOSED%SCAN_MAX_ROWS%SCAN_TYPES%TYPE_ATTRIBUTE_HANDLING%STRING_TYPE_ATTRIBUTE_HANDLING%DATE_INPUT_FORMAT%SCAN_ADDITIONAL_FIELDS&quot;,CSV2&lt;space&gt;Schema&lt;space&gt;Generation,CSV2_SCAN_MAX_ROWS,&quot;OPTIONAL INTEGER&quot;,CSV2&lt;space&gt;Maximum&lt;space&gt;Rows&lt;space&gt;to&lt;space&gt;Scan:,CSV2_SCAN_TYPES,&quot;OPTIONAL ACTIVECHOICE Yes%No,TYPE_ATTRIBUTE_HANDLING,STRING_TYPE_ATTRIBUTE_HANDLING,DATE_INPUT_FORMAT&quot;,CSV2&lt;space&gt;Scan&lt;space&gt;for&lt;space&gt;Types:,CSV2_TYPE_ATTRIBUTE_HANDLING,&quot;OPTIONAL LOOKUP_CHOICE Standard&lt;space&gt;Types,STANDARD_TYPES%Explicit&lt;space&gt;Width&lt;space&gt;and&lt;space&gt;Precision,EXPLICIT_WIDTH&quot;,CSV2&lt;space&gt;Numeric&lt;space&gt;Attribute&lt;space&gt;Type&lt;space&gt;Handling:,CSV2_STRING_TYPE_ATTRIBUTE_HANDLING,&quot;OPTIONAL LOOKUP_CHOICE Standard&lt;space&gt;Types,STANDARD_TYPES%Explicit&lt;space&gt;Width,EXPLICIT_WIDTH&quot;,CSV2&lt;space&gt;String&lt;space&gt;Attribute&lt;space&gt;Type&lt;space&gt;Handling:,CSV2_DATE_INPUT_FORMAT,&quot;OPTIONAL STRING_OR_LOOKUP_CHOICE_ENCODED &quot;&quot;&lt;lt&gt;Auto&lt;space&gt;detect&lt;space&gt;FME&lt;space&gt;and&lt;space&gt;ISO&lt;space&gt;formats&lt;gt&gt;,FME|ISO&quot;&quot;%&quot;&quot;FME&lt;space&gt;&lt;openparen&gt;auto&lt;space&gt;detect&lt;closeparen&gt;,FME&quot;&quot;%&quot;&quot;ISO&lt;space&gt;&lt;openparen&gt;auto&lt;space&gt;detect&lt;closeparen&gt;,ISO&quot;&quot;%&quot;&quot;%Y%m%d&lt;dollar&gt;&lt;space&gt;&lt;openparen&gt;FME&lt;space&gt;date&lt;closeparen&gt;,%Y%m%d$&quot;&quot;%&quot;&quot;%H%M%S&lt;dollar&gt;&lt;space&gt;&lt;openparen&gt;FME&lt;space&gt;time&lt;closeparen&gt;,%H%M%S$&quot;&quot;%&quot;&quot;%H%M%S%z&lt;dollar&gt;&lt;space&gt;&lt;openparen&gt;FME&lt;space&gt;time&lt;space&gt;with&lt;space&gt;offset&lt;closeparen&gt;,%H%M%S%z$&quot;&quot;%&quot;&quot;%Y%m%d%H%M%S&lt;dollar&gt;&lt;space&gt;&lt;openparen&gt;FME&lt;space&gt;datetime&lt;closeparen&gt;,%Y%m%d%H%M%S$&quot;&quot;%&quot;&quot;%Y%m%d%H%M%S%z&lt;dollar&gt;&lt;space&gt;&lt;openparen&gt;FME&lt;space&gt;datetime&lt;space&gt;with&lt;space&gt;offset&lt;closeparen&gt;,%Y%m%d%H%M%S%z$&quot;&quot;%&quot;&quot;%Y-%m-%d&lt;dollar&gt;&lt;space&gt;&lt;openparen&gt;ISO&lt;space&gt;date&lt;closeparen&gt;,%Y-%m-%d$&quot;&quot;%&quot;&quot;%H:%M:%S&lt;dollar&gt;&lt;space&gt;&lt;openparen&gt;ISO&lt;space&gt;time&lt;closeparen&gt;,%H:%M:%S$&quot;&quot;%&quot;&quot;%H:%M:%S%Ez&lt;dollar&gt;&lt;space&gt;&lt;openparen&gt;ISO&lt;space&gt;time&lt;space&gt;with&lt;space&gt;offset&lt;closeparen&gt;,%H:%M:%S%Ez$&quot;&quot;%&quot;&quot;%Y-%m-%dT%H:%M:%S&lt;dollar&gt;&lt;space&gt;&lt;openparen&gt;ISO&lt;space&gt;datetime&lt;closeparen&gt;,%Y-%m-%dT%H:%M:%S$&quot;&quot;%&quot;&quot;%Y-%m-%dT%H:%M:%S%Ez&lt;dollar&gt;&lt;space&gt;&lt;openparen&gt;ISO&lt;space&gt;datetime&lt;space&gt;with&lt;space&gt;offset&lt;closeparen&gt;,%Y-%m-%dT%H:%M:%S%Ez$&quot;&quot;%&quot;&quot;%Y-%j&lt;dollar&gt;&lt;space&gt;&lt;openparen&gt;ISO&lt;space&gt;ordinal&lt;space&gt;date&lt;closeparen&gt;,%Y-%j$&quot;&quot;%&quot;&quot;%Y:%m:%d&lt;space&gt;%H:%M:%S&lt;dollar&gt;&lt;space&gt;&lt;openparen&gt;Exif&lt;space&gt;datetime&lt;closeparen&gt;,%Y:%m:%d%H:%M:%S$&quot;&quot;%&quot;&quot;%d/%m/%Y&lt;dollar&gt;&quot;&quot;%&quot;&quot;%d.%m.%Y&lt;dollar&gt;&quot;&quot;%&quot;&quot;%B&lt;space&gt;%e&lt;comma&gt;&lt;space&gt;%Y&lt;dollar&gt;&quot;&quot;%&quot;&quot;%b-%e-%Y&lt;dollar&gt;&quot;&quot;%&quot;&quot;%I:%M:%S%p&lt;dollar&gt;&quot;&quot;%&quot;&quot;%s&lt;dollar&gt;&lt;space&gt;&lt;openparen&gt;Epoch&lt;space&gt;Time&lt;closeparen&gt;,%s$&quot;&quot;%&quot;&quot;%Es&lt;dollar&gt;&lt;space&gt;&lt;openparen&gt;Unzoned&lt;space&gt;Epoch&lt;space&gt;Time&lt;closeparen&gt;,%Es$&quot;&quot;&quot;,CSV2&lt;space&gt;Date&lt;space&gt;Input&lt;space&gt;Format:,CSV2_SCAN_ADDITIONAL_FIELDS,&quot;OPTIONAL CHOICE Yes%No&quot;,CSV2&lt;space&gt;Scan&lt;space&gt;for&lt;space&gt;Additional&lt;space&gt;Fields:,CSV2_TRIM_FIELD_NAME_QUALIFIERS,&quot;IGNORE TEXT&quot;,CSV2&lt;space&gt;"/>
#!     <XFORM_PARM PARM_NAME="IDXDESTATTR" PARM_VALUE="fme_feature_type"/>
#!     <XFORM_PARM PARM_NAME="IDXDESTCOL" PARM_VALUE="&quot;&quot;"/>
#!     <XFORM_PARM PARM_NAME="IDXSOURCEATTR" PARM_VALUE="fme_feature_type"/>
#!     <XFORM_PARM PARM_NAME="IDXSOURCECOL" PARM_VALUE="&quot;&quot;"/>
#!     <XFORM_PARM PARM_NAME="MAP_ATTRS" PARM_VALUE="SOURCE DESTINATION $(FME_ASC_16)"/>
#!     <XFORM_PARM PARM_NAME="MAP_ATTR_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="MATCH_ATTRS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="NEW_ATTR_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PRESERVE_FEATURE_ORDER" PARM_VALUE="PER_OUTPUT_PORT"/>
#!     <XFORM_PARM PARM_NAME="READER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ROW_ID_ATTR" PARM_VALUE="_schemamapper_row_ids"/>
#!     <XFORM_PARM PARM_NAME="SCHEMA_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TABLE" PARM_VALUE="CSV"/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="SchemaMapper"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="30"
#!   TYPE="AttributeRemover"
#!   VERSION="1"
#!   POSITION="3660.3088803165256 -980.00750007500051"
#!   BOUNDING_RECT="3660.3088803165256 -980.00750007500051 436 65"
#!   ORDER="500000000000015"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_PARM PARM_NAME="LIST_ATTRS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="REMOVE_ATTRS" PARM_VALUE="_schemamapper_row_ids"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeRemover"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="32"
#!   TYPE="SchemaScanner"
#!   VERSION="2"
#!   POSITION="4223.4333234421438 -980.00750007500051"
#!   BOUNDING_RECT="4223.4333234421438 -980.00750007500051 436 65"
#!   ORDER="500000000000016"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="Output"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="fme_feature_type_name" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="&lt;SCHEMA&gt;"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_ATTR ATTR_NAME="fme_feature_type_name" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="attribute{}.name" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="attribute{}.fme_data_type" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
#!     <FEAT_COLLAPSED COLLAPSED="2"/>
#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_PARM PARM_NAME="CASE" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="DATE_OPTIONS_GROUP" PARM_VALUE="NO_DATE"/>
#!     <XFORM_PARM PARM_NAME="DATE_OPTIONS_GRP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="DATE_TIME_ATTRIBUTE_FORMAT" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="EMPTY_ATTR_HANDLING" PARM_VALUE="IGNORE"/>
#!     <XFORM_PARM PARM_NAME="FME_DATE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GROUP_BY" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GROUP_BY_MODE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GROUP_PROCESSING_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="HOLD" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="IGNORE_REGEXP" PARM_VALUE="^fme_|^multi_"/>
#!     <XFORM_PARM PARM_NAME="INCLUDE_FORMAT_ATTR" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="MAX_FEATURES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="NO_DATE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="NUMERIC_ALLOW_LEADING_ZEROES" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_ATTR_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="SCHEMA_NAME_ATTR" PARM_VALUE="fme_feature_type_name"/>
#!     <XFORM_PARM PARM_NAME="TEST_STRING" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TYPE_OPTIONS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="UNBOUNDED_NUMBERS" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="UNBOUNDED_STRINGS" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="SchemaScanner"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="34"
#!   TYPE="FeatureWriter"
#!   VERSION="0"
#!   POSITION="4829.8750314235822 -980.00750007500051"
#!   BOUNDING_RECT="4829.8750314235822 -980.00750007500051 621.91215971565543 65"
#!   ORDER="500000000000017"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25810"
#! >
#!     <OUTPUT_FEAT NAME="SUMMARY"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_feature_types{}.count" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_feature_types{}.name" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_dataset" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_total_features_written" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="CONFIG_PARAMETERS" PARM_VALUE="ESCAPE_COMMAS_IN_FTP_FORMAT_PARAMETERS,no"/>
#!     <XFORM_PARM PARM_NAME="COORDSYS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="DATASET" PARM_VALUE="$(Mapped_Output)&lt;solidus&gt;mapped_dataset.json"/>
#!     <XFORM_PARM PARM_NAME="DATASET_ATTR" PARM_VALUE="_dataset"/>
#!     <XFORM_PARM PARM_NAME="DYNGROUP_0" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="FEATURE_TYPES_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="FEATURE_TYPE_LIST_ATTR" PARM_VALUE="_feature_types"/>
#!     <XFORM_PARM PARM_NAME="FORMAT" PARM_VALUE="GEOJSON"/>
#!     <XFORM_PARM PARM_NAME="FORMAT_DIRECTIVES" PARM_VALUE="RUNTIME_MACROS,WRITER_CHARSET&lt;comma&gt;UTF-8&lt;comma&gt;WRITE_BOM&lt;comma&gt;No&lt;comma&gt;FILE_STRUCTURE&lt;comma&gt;SINGLE_FEATURE_COLLECTION&lt;comma&gt;WRITE_FEATURE_IDS&lt;comma&gt;Yes&lt;comma&gt;WRITE_NESTED&lt;comma&gt;YES&lt;comma&gt;PRETTY_PRINT&lt;comma&gt;YES&lt;comma&gt;INDENT_SIZE&lt;comma&gt;0&lt;comma&gt;SPATIAL_GROUP&lt;comma&gt;&lt;comma&gt;COORDINATE_SYSTEM&lt;comma&gt;&lt;comma&gt;MAX_COORDINATE_PRECISION&lt;comma&gt;10&lt;comma&gt;COUNTER_CLOCKWISE_AREAS&lt;comma&gt;Yes&lt;comma&gt;WGS84_REPROJECTION&lt;comma&gt;Yes&lt;comma&gt;DESTINATION_DATASETTYPE_VALIDATION&lt;comma&gt;Yes&lt;comma&gt;NETWORK_AUTHENTICATION&lt;comma&gt;,METAFILE,GEOJSON"/>
#!     <XFORM_PARM PARM_NAME="FORMAT_PARAMS" PARM_VALUE="GEOJSON_WRITE_BOM,&quot;OPTIONAL LOOKUP_CHOICE Yes,Yes%No,No&quot;,GEOJSON&lt;space&gt;Byte&lt;space&gt;Order&lt;space&gt;Marker:,GEOJSON_WRITE_FEATURE_IDS,&quot;OPTIONAL LOOKUP_CHOICE Yes,Yes%No,No&quot;,GEOJSON&lt;space&gt;Write&lt;space&gt;Feature&lt;space&gt;ids&lt;space&gt;from&lt;space&gt;&lt;apos&gt;id&lt;apos&gt;&lt;space&gt;Attribute:,GEOJSON_COORDINATE_SYSTEM,&quot;OPTIONAL COORDSYS&quot;,GEOJSON&lt;space&gt;Coordinate&lt;space&gt;System:,GEOJSON_SPATIAL_GROUP,&quot;OPTIONAL DISCLOSUREGROUP FME_DISCLOSURE_OPEN%COORDINATE_SYSTEM%MAX_COORDINATE_PRECISION%GEOMETRY_GROUP&quot;,GEOJSON&lt;space&gt;Spatial,GEOJSON_WRITE_NESTED,&quot;OPTIONAL LOOKUP_CHOICE Yes,YES%No,NO&quot;,GEOJSON&lt;space&gt;Nested&lt;space&gt;Output:,GEOJSON_PRETTY_PRINT,&quot;OPTIONAL ACTIVECHOICE_LOOKUP Pretty&lt;space&gt;Print,YES%Linear,NO,INDENT_SIZE&quot;,GEOJSON&lt;space&gt;Formatting&lt;space&gt;Type:,GEOJSON_MAX_COORDINATE_PRECISION,&quot;OPTIONAL RANGE_SLIDER 1%15%0%ON&quot;,GEOJSON&lt;space&gt;Coordinate&lt;space&gt;Precision&lt;space&gt;&lt;openparen&gt;Maximum&lt;space&gt;Number&lt;space&gt;of&lt;space&gt;Fractional&lt;space&gt;Digits&lt;closeparen&gt;:,GEOJSON_NETWORK_AUTHENTICATION,&quot;OPTIONAL AUTHENTICATOR CONTAINER%ACTIVEDISCLOSUREGROUP%CONTAINER_TITLE%Use Network Authentication%PROMPT_TYPE%NETWORK&quot;,GEOJSON&lt;space&gt;Use&lt;space&gt;Network&lt;space&gt;Authentication,GEOJSON_INDENT_SIZE,&quot;OPTIONAL LOOKUP_CHOICE Tabs,0%1&lt;space&gt;space,1%2&lt;space&gt;spaces,2%3&lt;space&gt;spaces,3%4&lt;space&gt;spaces,4%5&lt;space&gt;spaces,5%6&lt;space&gt;spaces,6%7&lt;space&gt;spaces,7%8&lt;space&gt;spaces,8&quot;,GEOJSON&lt;space&gt;Indent&lt;space&gt;Size:,GEOJSON_COUNTER_CLOCKWISE_AREAS,&quot;OPTIONAL LOOKUP_CHOICE Yes,Yes%No,No&quot;,GEOJSON&lt;space&gt;Convert&lt;space&gt;Areas&lt;space&gt;to&lt;space&gt;Counterclockwise:,GEOJSON_FILE_STRUCTURE,&quot;OPTIONAL LOOKUP_CHOICE Single&lt;space&gt;FeatureCollection&lt;space&gt;object&lt;space&gt;containing&lt;space&gt;all&lt;space&gt;features,SINGLE_FEATURE_COLLECTION%Array&lt;space&gt;of&lt;space&gt;FeatureCollection&lt;space&gt;objects&lt;space&gt;-&lt;space&gt;one&lt;space&gt;per&lt;space&gt;feature&lt;space&gt;type,ARRAY_OF_FEATURE_COLLECTIONS%Object&lt;space&gt;with&lt;space&gt;feature&lt;space&gt;type&lt;space&gt;names&lt;space&gt;as&lt;space&gt;keys&lt;comma&gt;&lt;space&gt;FeatureCollection&lt;space&gt;objects&lt;space&gt;as&lt;space&gt;values,OBJECT_WITH_FEATURE_TYPE_KEYS&quot;,GEOJSON&lt;space&gt;File&lt;space&gt;Structure:,GEOJSON_WRITER_CHARSET,&quot;OPTIONAL LOOKUP_CHOICE UTF-8,UTF-8%UTF-16,UTF-16%UTF-16BE,UTF-16BE%UTF-16LE,UTF-16LE%UTF-32,UTF-32%UTF-32BE,UTF-32BE%UTF-32LE,UTF-32LE&quot;,GEOJSON&lt;space&gt;Output&lt;space&gt;Character&lt;space&gt;Set:,GEOJSON_WGS84_REPROJECTION,&quot;OPTIONAL LOOKUP_CHOICE Yes,Yes%No,No&quot;,GEOJSON&lt;space&gt;Reproject&lt;space&gt;to&lt;space&gt;WGS84:,GEOJSON_DESTINATION_DATASETTYPE_VALIDATION,&quot;OPTIONAL NO_EDIT TEXT&quot;,GEOJSON&lt;space&gt;"/>
#!     <XFORM_PARM PARM_NAME="GEOJSON_COORDINATE_SYSTEM" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="GEOJSON_COUNTER_CLOCKWISE_AREAS" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="GEOJSON_DESTINATION_DATASETTYPE_VALIDATION" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="GEOJSON_FILE_STRUCTURE" PARM_VALUE="SINGLE_FEATURE_COLLECTION"/>
#!     <XFORM_PARM PARM_NAME="GEOJSON_INDENT_SIZE" PARM_VALUE="0"/>
#!     <XFORM_PARM PARM_NAME="GEOJSON_MAX_COORDINATE_PRECISION" PARM_VALUE="10"/>
#!     <XFORM_PARM PARM_NAME="GEOJSON_NETWORK_AUTHENTICATION" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="GEOJSON_PRETTY_PRINT" PARM_VALUE="YES"/>
#!     <XFORM_PARM PARM_NAME="GEOJSON_SPATIAL_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="GEOJSON_WGS84_REPROJECTION" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="GEOJSON_WRITER_CHARSET" PARM_VALUE="UTF-8"/>
#!     <XFORM_PARM PARM_NAME="GEOJSON_WRITE_BOM" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="GEOJSON_WRITE_FEATURE_IDS" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="GEOJSON_WRITE_NESTED" PARM_VALUE="YES"/>
#!     <XFORM_PARM PARM_NAME="GROUP_BY" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GROUP_BY_MODE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="GROUP_PROCESSING_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="MORE_SUMMARY_ATTRS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="NO_OUTPUT_PORTS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="OUTPUTPORTS_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_PORTS" PARM_VALUE="&quot;&quot;"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_PORTS_MODE" PARM_VALUE="NO_OUTPUT_PORTS"/>
#!     <XFORM_PARM PARM_NAME="PER_EACH_INPUT" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SELECTED_PORTS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SUMMARY_ATTRS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TOTAL_FEATURES_WRITTEN_ATTR" PARM_VALUE="_total_features_written"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="WRITER_DIRECTIVES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="WRITER_FEATURE_TYPE_PARAMS" PARM_VALUE="&lt;at&gt;Value&lt;openparen&gt;fme_feature_type&lt;closeparen&gt;:Output,ftp_feature_type_name_exp,&lt;at&gt;Value&lt;openparen&gt;fme_feature_type&lt;closeparen&gt;,ftp_writer,GEOJSON,ftp_dynamic_schema,yes,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_FIXED,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_FROM_ATTRIBUTE,ftp_dynamic_schema_sources,SCHEMA_FROM_FIRST_FEATURE,ftp_dynamic_schema_def_name,&lt;at&gt;Value&lt;openparen&gt;fme_feature_type_name&lt;closeparen&gt;,ftp_attribute_source,2,ftp_uses_spatial_definition,yes,ftp_spatial_definition,geom_name&lt;comma&gt;&lt;comma&gt;geom_string&lt;comma&gt;&lt;comma&gt;spatial_type&lt;comma&gt;"/>
#!     <XFORM_PARM PARM_NAME="WRITER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="WRITER_METAFILE" PARM_VALUE="ATTRIBUTE_CASE,ANY,ATTRIBUTE_INVALID_CHARS,,ATTRIBUTE_LENGTH,600,ATTR_TYPE_MAP,string&lt;comma&gt;fme_buffer&lt;comma&gt;string&lt;comma&gt;fme_binarybuffer&lt;comma&gt;string&lt;comma&gt;fme_xml&lt;comma&gt;string&lt;comma&gt;fme_varchar&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;string&lt;comma&gt;fme_varbinary&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;boolean&lt;comma&gt;fme_boolean&lt;comma&gt;string&lt;comma&gt;fme_char&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;string&lt;comma&gt;fme_binary&lt;openparen&gt;width&lt;closeparen&gt;&lt;comma&gt;string&lt;comma&gt;fme_datetime&lt;comma&gt;string&lt;comma&gt;fme_time&lt;comma&gt;string&lt;comma&gt;fme_date&lt;comma&gt;float&lt;comma&gt;fme_real64&lt;comma&gt;float&lt;comma&gt;fme_real32&lt;comma&gt;int&lt;comma&gt;fme_int64&lt;comma&gt;string&lt;comma&gt;fme_uint64&lt;comma&gt;int&lt;comma&gt;fme_int32&lt;comma&gt;int&lt;comma&gt;fme_uint32&lt;comma&gt;int&lt;comma&gt;fme_int16&lt;comma&gt;int&lt;comma&gt;fme_uint16&lt;comma&gt;int&lt;comma&gt;fme_int8&lt;comma&gt;int&lt;comma&gt;fme_uint8&lt;comma&gt;string&lt;comma&gt;&lt;quote&gt;fme_decimal&lt;openparen&gt;width&lt;comma&gt;decimal&lt;closeparen&gt;&lt;quote&gt;&lt;comma&gt;json&lt;comma&gt;fme_json,DEST_ILLEGAL_ATTR_LIST,,FEATURE_TYPE_CASE,ANY,FEATURE_TYPE_INVALID_CHARS,,FEATURE_TYPE_LENGTH,0,FEATURE_TYPE_LENGTH_INCLUDES_PREFIX,false,FEATURE_TYPE_RESERVED_WORDS,,FORMAT_METAFILE,$(FME_HOME_ENCODED)metafile&lt;backslash&gt;GEOJSON.fmf,FORMAT_NAME,GEOJSON,GEOM_MAP,json_point&lt;comma&gt;fme_point&lt;comma&gt;json_line&lt;comma&gt;fme_line&lt;comma&gt;json_polygon&lt;comma&gt;fme_polygon&lt;comma&gt;json_text&lt;comma&gt;fme_text&lt;comma&gt;json_ellipse&lt;comma&gt;fme_ellipse&lt;comma&gt;json_arc&lt;comma&gt;fme_arc&lt;comma&gt;json_rectangle&lt;comma&gt;fme_rectangle&lt;comma&gt;json_rounded_rectangle&lt;comma&gt;fme_rounded_rectangle&lt;comma&gt;json_raster&lt;comma&gt;fme_raster&lt;comma&gt;json_no_geom&lt;comma&gt;fme_no_geom&lt;comma&gt;json_collection&lt;comma&gt;fme_collection&lt;comma&gt;json_line&lt;comma&gt;fme_surface&lt;comma&gt;json_line&lt;comma&gt;fme_solid&lt;comma&gt;json_polygon&lt;comma&gt;fme_point_cloud&lt;comma&gt;json_polygon&lt;comma&gt;fme_voxel_grid,READER_ATTR_INDEX_TYPES,,READER_FORMAT_TYPE,,READER_USES_DEF,yes,SOURCE,no,SUPPORTS_FEAT_TYPE_FANOUT,yes,SUPPORTS_MULTI_GEOM,yes,WORKBENCH_CANNED_SCHEMA,,WRITER,GEOJSON,WRITER_ATTR_INDEX_TYPES,,WRITER_DEFLINE_PARMS,,WRITER_DEF_LINE_TEMPLATE,&lt;opencurly&gt;FME_GEN_GROUP_NAME&lt;closecurly&gt;,WRITER_FORMAT_PARAMETER,MIME_TYPE&lt;comma&gt;&lt;quote&gt;application&lt;solidus&gt;geo+json&lt;space&gt;ADD_DISPOSITION&lt;quote&gt;&lt;comma&gt;WRITER_SPATIAL_DEFINITION_TABLE&lt;comma&gt;YES&lt;comma&gt;READER_DATASET_HINT&lt;comma&gt;&lt;quote&gt;Select&lt;space&gt;the&lt;space&gt;GeoJSON&lt;space&gt;file&lt;openparen&gt;s&lt;closeparen&gt;&lt;space&gt;or&lt;space&gt;type&lt;space&gt;the&lt;space&gt;GeoJSON&lt;space&gt;URL&lt;quote&gt;&lt;comma&gt;WRITER_DATASET_HINT&lt;comma&gt;&lt;quote&gt;Specify&lt;space&gt;a&lt;space&gt;name&lt;space&gt;for&lt;space&gt;the&lt;space&gt;GeoJSON&lt;space&gt;file&lt;quote&gt;,WRITER_FORMAT_TYPE,,WRITER_HAS_DEFLINE_ATTRS,yes,WRITER_USES_DEF,yes"/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="FeatureWriter_2"/>
#! </TRANSFORMER>
#! </TRANSFORMERS>
#! <FEAT_LINKS>
#! <FEAT_LINK
#!   IDENTIFIER="4"
#!   SOURCE_NODE="2"
#!   TARGET_NODE="3"
#!   SOURCE_PORT_DESC="-1"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="6"
#!   SOURCE_NODE="3"
#!   TARGET_NODE="5"
#!   SOURCE_PORT_DESC="fo 0 SAMPLED"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="8"
#!   SOURCE_NODE="5"
#!   TARGET_NODE="7"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="10"
#!   SOURCE_NODE="7"
#!   TARGET_NODE="9"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="12"
#!   SOURCE_NODE="9"
#!   TARGET_NODE="11"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="14"
#!   SOURCE_NODE="11"
#!   TARGET_NODE="13"
#!   SOURCE_PORT_DESC="fo 0 AGGREGATE"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="16"
#!   SOURCE_NODE="13"
#!   TARGET_NODE="15"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="19"
#!   SOURCE_NODE="15"
#!   TARGET_NODE="18"
#!   SOURCE_PORT_DESC="fo 0 AGGREGATE"
#!   TARGET_PORT_DESC="fi 0 Input"
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="21"
#!   SOURCE_NODE="18"
#!   TARGET_NODE="20"
#!   SOURCE_PORT_DESC="fo 0 Output"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="23"
#!   SOURCE_NODE="20"
#!   TARGET_NODE="22"
#!   SOURCE_PORT_DESC="fo 0 FRAGMENTS"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="25"
#!   SOURCE_NODE="22"
#!   TARGET_NODE="24"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 Output"
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="27"
#!   SOURCE_NODE="24"
#!   TARGET_NODE="26"
#!   SOURCE_PORT_DESC="fo 0 SUMMARY"
#!   TARGET_PORT_DESC="fi 0 INITIATOR"
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="31"
#!   SOURCE_NODE="28"
#!   TARGET_NODE="30"
#!   SOURCE_PORT_DESC="fo 0 MAPPED"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="33"
#!   SOURCE_NODE="30"
#!   TARGET_NODE="32"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="35"
#!   SOURCE_NODE="32"
#!   TARGET_NODE="34"
#!   SOURCE_PORT_DESC="fo 0 Output"
#!   TARGET_PORT_DESC="fi 0 Output"
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="29"
#!   SOURCE_NODE="26"
#!   TARGET_NODE="28"
#!   SOURCE_PORT_DESC="fo 1 &lt;lt&gt;OTHER&lt;gt&gt;"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="36"
#!   SOURCE_NODE="32"
#!   TARGET_NODE="34"
#!   SOURCE_PORT_DESC="fo 1 &lt;lt&gt;SCHEMA&lt;gt&gt;"
#!   TARGET_PORT_DESC="fi 0 Output"
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! </FEAT_LINKS>
#! <BREAKPOINTS>
#! </BREAKPOINTS>
#! <ATTR_LINKS>
#! </ATTR_LINKS>
#! <SUBDOCUMENTS>
#! <SUBDOCUMENT
#!   NAME="OpenAIConnector"
#!   ARCGIS_COMPATIBILITY="ARCGIS_AUTO"
#!   CATEGORY="Web"
#!   DESCRIPTION="&lt;h1&gt;OpenAIConnector Transformer Documentation&lt;/h1&gt;&#10;&lt;p&gt;The &lt;code&gt;OpenAIConnector&lt;/code&gt; is a custom FME transformer that enables integration with OpenAI&apos;s APIs, including the &lt;a href=&quot;https://platform.openai.com/docs/api-reference/responses/create&quot;&gt;&lt;code&gt;/v1/responses&lt;/code&gt;&lt;/a&gt; and &lt;a href=&quot;https://platform.openai.com/docs/api-reference/embeddings&quot;&gt;&lt;code&gt;/v1/embeddings&lt;/code&gt;&lt;/a&gt; endpoints. This transformer allows you to send prompts to OpenAI&apos;s large language models, create vector embeddings from text, and receive results directly within an FME workspace. Supported input types include &lt;a href=&quot;https://platform.openai.com/docs/guides/text?api-mode=responses&quot;&gt;text&lt;/a&gt;, &lt;a href=&quot;https://platform.openai.com/docs/guides/images?api-mode=responses&quot;&gt;image (Vision)&lt;/a&gt;, &lt;a href=&quot;https://platform.openai.com/docs/guides/tools-file-search&quot;&gt;file search&lt;/a&gt;, &lt;a href=&quot;https://platform.openai.com/docs/guides/tools?api-mode=responses&amp;amp;tool-type=remote-mcp&quot;&gt;Remote MCP&lt;/a&gt;, &lt;a href=&quot;https://platform.openai.com/docs/guides/tools-web-search?api-mode=responses&quot;&gt;web search&lt;/a&gt;, and &lt;a href=&quot;https://platform.openai.com/docs/guides/embeddings&quot;&gt;embeddings&lt;/a&gt;.&lt;/p&gt;&#10;&lt;hr /&gt;&#10;&lt;h2 id=&quot;purpose&quot;&gt;Purpose&lt;/h2&gt;&#10;&lt;p&gt;This transformer supports AI-driven tasks such as content generation, classification, summarization, or transformation of structured/unstructured data, as well as creating vector embeddings for semantic search, clustering, or similarity matching. It leverages OpenAI&apos;s APIs in a repeatable, automatable data workflow.&lt;/p&gt;&#10;&lt;hr /&gt;&#10;&lt;h2 id=&quot;example-use-case&quot;&gt;Example Use Case&lt;/h2&gt;&#10;&lt;p&gt;Imagine you have a dataset with a column of customer support inquiries, and you&apos;d like to auto-generate a response or classify the sentiment. You can:&lt;/p&gt;&#10;&lt;ol&gt;&#10;&lt;li&gt;Use &lt;code&gt;AttributeCreator&lt;/code&gt; to build a dynamic prompt string.&lt;/li&gt;&#10;&lt;li&gt;Pass that prompt to &lt;code&gt;OpenAIConnector&lt;/code&gt;.&lt;/li&gt;&#10;&lt;li&gt;Capture the model&apos;s response as a new attribute for downstream use.&lt;/li&gt;&#10;&lt;/ol&gt;&#10;&lt;p&gt;For embeddings, you might embed product descriptions for use in similarity search against a product catalog.&lt;/p&gt;&#10;&lt;hr /&gt;&#10;&lt;h2 id=&quot;output-attributes&quot;&gt;Output Attributes&lt;/h2&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Attribute Name&lt;/th&gt;&#10;&lt;th&gt;Description&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;_response_body&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;The raw text response or embedding vector from the OpenAI API.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;code&gt;Response&lt;/code&gt;&lt;/td&gt;&#10;&lt;td&gt;A formatted text response from the OpenAI model (if applicable).&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr /&gt;&#10;&lt;h2 id=&quot;notes&quot;&gt;Notes&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;This transformer supports the OpenAI &lt;strong&gt;Responses&lt;/strong&gt; (&lt;code&gt;/v1/responses&lt;/code&gt;) and &lt;strong&gt;Embeddings&lt;/strong&gt; (&lt;code&gt;/v1/embeddings&lt;/code&gt;) APIs.  &lt;/li&gt;&#10;&lt;li&gt;It is not compatible with the &lt;strong&gt;chat&lt;/strong&gt; endpoint (&lt;code&gt;/v1/chat/completions&lt;/code&gt;) unless explicitly adapted. For Chat Completions, consider using the &lt;a href=&quot;https://hub.safe.com/publishers/safe-lab/transformers/openaicompletionsconnector&quot;&gt;OpenAIChatGPTConnector&lt;/a&gt; instead.&lt;/li&gt;&#10;&lt;/ul&gt;&#10;&lt;hr /&gt;&#10;&lt;h2 id=&quot;related-resources&quot;&gt;Related Resources&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://platform.openai.com/docs/api-reference/responses/create&quot;&gt;OpenAI API Docs – Responses&lt;/a&gt;  &lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://platform.openai.com/docs/api-reference/embeddings&quot;&gt;OpenAI API Docs – Embeddings&lt;/a&gt;  &lt;/li&gt;&#10;&lt;li&gt;&lt;a href=&quot;https://platform.openai.com/tokenizer&quot;&gt;OpenAI Tokenizer Tool&lt;/a&gt;&lt;/li&gt;&#10;&lt;/ul&gt;"
#!   DOC_DYNAMIC_INPUT_ATTRS="0"
#!   DOC_EXTENTS="8736.09 2200.23"
#!   DOC_TOP_LEFT="-13221.1 -953.113"
#!   FME_DOCUMENT_GUID="e0ddca66-43a5-401f-85d8-330546a9d5ec"
#!   FME_DOCUMENT_PRIORGUID="29120a9a-9ad6-49b6-a5b8-f4e4a8881d5b,0b8b0801-91b2-4a2b-bca7-5919f35aa12e,e26db075-e7d1-484e-aa9c-fccd32e6d8a4"
#!   FME_NAMES_ENCODING="UTF-8"
#!   FME_PROCESS_COUNT="NO_PARALLELISM"
#!   FME_PROCESS_GROUPS_ORDERED="No"
#!   FME_PROCESS_GROUP_BY=""
#!   FME_PROCESS_PRESERVE_GROUP_ATTR="No"
#!   FMX_ATTRIBUTE_PROPOGATION_MODE="AUTO"
#!   GUID="e0ddca66-43a5-401f-85d8-330546a9d5ec"
#!   HISTORY="Mar&lt;space&gt;24&lt;comma&gt;&lt;space&gt;2025,Christian&lt;space&gt;Berger,Created&lt;space&gt;OpenAIConnector&lt;space&gt;based&lt;space&gt;on&lt;space&gt;Responses&lt;space&gt;API,Apr&lt;space&gt;22&lt;comma&gt;&lt;space&gt;2025,Sienna&lt;space&gt;Emery,Adding&lt;space&gt;HTTP&lt;space&gt;Handling&lt;space&gt;Options-&lt;space&gt;Timeouts&lt;space&gt;and&lt;space&gt;Retries,Aug&lt;space&gt;8&lt;comma&gt;&lt;space&gt;2025,Christian&lt;space&gt;Berger,Added&lt;space&gt;support&lt;space&gt;for&lt;space&gt;Remote&lt;space&gt;MCP&lt;space&gt;Tools:&lt;space&gt;https:&lt;solidus&gt;&lt;solidus&gt;platform.openai.com&lt;solidus&gt;docs&lt;solidus&gt;guides&lt;solidus&gt;tools-remote-mcp,Aug&lt;space&gt;14&lt;comma&gt;&lt;space&gt;2025,Sanae&lt;space&gt;Mendoza,Added&lt;space&gt;support&lt;space&gt;for&lt;space&gt;Embeddings:&lt;space&gt;https:&lt;solidus&gt;&lt;solidus&gt;platform.openai.com&lt;solidus&gt;docs&lt;solidus&gt;api-reference&lt;solidus&gt;embeddings,Aug&lt;space&gt;19&lt;comma&gt;&lt;space&gt;2025,Christian&lt;space&gt;Berger,Set&lt;space&gt;GPT5&lt;space&gt;as&lt;space&gt;default&lt;space&gt;model."
#!   IS_VISIBLE="false"
#!   LAST_SAVE_BUILD="FME(R) 2025.1.1.0 (20250730 - Build 25615 - macosx-aarch64)"
#!   LAST_SAVE_DATE="2025-08-27T12:54:38"
#!   MARKDOWN_DESCRIPTION="# OpenAIConnector Transformer Documentation&#10;&#10;The `OpenAIConnector` is a custom FME transformer that enables integration with OpenAI&apos;s APIs, including the [`/v1/responses`](https://platform.openai.com/docs/api-reference/responses/create) and [`/v1/embeddings`](https://platform.openai.com/docs/api-reference/embeddings) endpoints. This transformer allows you to send prompts to OpenAI&apos;s large language models, create vector embeddings from text, and receive results directly within an FME workspace. Supported input types include [text](https://platform.openai.com/docs/guides/text?api-mode=responses), [image (Vision)](https://platform.openai.com/docs/guides/images?api-mode=responses), [file search](https://platform.openai.com/docs/guides/tools-file-search), [Remote MCP](https://platform.openai.com/docs/guides/tools?api-mode=responses&amp;tool-type=remote-mcp), [web search](https://platform.openai.com/docs/guides/tools-web-search?api-mode=responses), and [embeddings](https://platform.openai.com/docs/guides/embeddings).&#10;&#10;---&#10;&#10;## Purpose&#10;&#10;This transformer supports AI-driven tasks such as content generation, classification, summarization, or transformation of structured/unstructured data, as well as creating vector embeddings for semantic search, clustering, or similarity matching. It leverages OpenAI&apos;s APIs in a repeatable, automatable data workflow.&#10;&#10;---&#10;&#10;## Example Use Case&#10;&#10;Imagine you have a dataset with a column of customer support inquiries, and you&apos;d like to auto-generate a response or classify the sentiment. You can:&#10;&#10;1. Use `AttributeCreator` to build a dynamic prompt string.&#10;2. Pass that prompt to `OpenAIConnector`.&#10;3. Capture the model&apos;s response as a new attribute for downstream use.&#10;&#10;For embeddings, you might embed product descriptions for use in similarity search against a product catalog.&#10;&#10;---&#10;&#10;## Output Attributes&#10;&#10;| Attribute Name | Description |&#10;|----------------|-------------|&#10;| `_response_body` | The raw text response or embedding vector from the OpenAI API. |&#10;| `Response`    | A formatted text response from the OpenAI model (if applicable). |&#10;&#10;---&#10;&#10;##  Notes&#10;&#10;- This transformer supports the OpenAI **Responses** (`/v1/responses`) and **Embeddings** (`/v1/embeddings`) APIs.  &#10;- It is not compatible with the **chat** endpoint (`/v1/chat/completions`) unless explicitly adapted. For Chat Completions, consider using the [OpenAIChatGPTConnector](https://hub.safe.com/publishers/safe-lab/transformers/openaicompletionsconnector) instead.&#10;&#10;---&#10;&#10;## Related Resources&#10;&#10;- [OpenAI API Docs – Responses](https://platform.openai.com/docs/api-reference/responses/create)  &#10;- [OpenAI API Docs – Embeddings](https://platform.openai.com/docs/api-reference/embeddings)  &#10;- [OpenAI Tokenizer Tool](https://platform.openai.com/tokenizer)&#10;"
#!   MARKDOWN_USAGE="##  Request&#10;&#10;These are the core parameters needed to make a request to the OpenAI API.&#10;&#10;| Parameter | Description |&#10;|-----------|-------------|&#10;| **API Key** | Your [OpenAI API key](https://platform.openai.com/api-keys). Required for authentication. Keep this key secure. |&#10;| **Action** | The type of operation to perform via the [Responses API](https://platform.openai.com/docs/api-reference/responses/create). Supported options include: [text generation](https://platform.openai.com/docs/guides/text?api-mode=responses), [image (vision)](https://platform.openai.com/docs/guides/images?api-mode=responses), [file search](https://platform.openai.com/docs/guides/tools-file-search), [web search](https://platform.openai.com/docs/guides/tools-web-search?api-mode=responses), and [Reasoning](https://platform.openai.com/docs/guides/reasoning?api-mode=responses). |&#10;&#10;---&#10;&#10;##  File Search *(if Action = File Search)*&#10;&#10;| Parameter | Description |&#10;|-----------|-------------|&#10;| **File to Upload** | The file to include in your file search request and temporarily uploaded to the [Files endpoint](https://platform.openai.com/docs/api-reference/files. The uploaded file is automatically deleted after the workspace completes). This file will be uploaded and used in the context of the query. See the [File Search Documentation ](https://platform.openai.com/docs/guides/tools-file-search) for more on supported formats and limitations.|&#10;&#10;---&#10;&#10;##  Reasoning *(if Action = Reasoning)*&#10;&#10;These parameters influence how much effort or depth the model should apply when answering a prompt.&#10;&#10;| Parameter | Description |&#10;|-----------|-------------|&#10;| **Effort** | Indicates how much reasoning or depth the model should use. Values may include `low`, `medium`, or `high`. Higher effort may result in longer or more detailed responses but may increase token usage. |&#10;&#10;&#10;--- &#10;&#10;##  Vision *(if Action = Vision)*&#10;&#10;| Parameter | Description |&#10;|-----------|-------------|&#10;| **File to Upload** | File path to an image file to analyze. |&#10;| **URL to Image** | A direct URL to an image for remote processing. Either this or a file upload is required. |&#10;&#10;---&#10;&#10;##  Embeddings *(if Action = Embeddings)*&#10;&#10;Note: Selecting the Embeddings action hides the Request section because embeddings use a different API endpoint (/v1/embeddings) and require a separate set of parameters.&#10;&#10;&#10;| Parameter | Description |&#10;|-----------|-------------|&#10;| **Text to Embed** | The input text to convert into an embedding vector. This can be a sentence, paragraph, or any other text content. |&#10;| **Embedding Model** | The model used to generate the embedding. Examples include `text-embedding-3-small` and `text-embedding-3-large`. See the [Embeddings Model Guide](https://platform.openai.com/docs/guides/embeddings#model-selection) for details. This field supports both selecting from a drop-down list and entering a custom model name. &#10;&#10;---&#10;&#10;##  Remote MCP *(if Action = Remote MCP)*&#10;&#10;| Parameter | Description |&#10;|-----------|-------------|&#10;| **MCP Tools (JSON)* | List of 1 or more Tools to access via the Remote MCP Tool. This parameter expects to receive JSON. For example, &#10;    {&#10;      &quot;type&quot;: &quot;mcp&quot;,&#10;      &quot;server_label&quot;: &quot;deepwiki&quot;,&#10;      &quot;server_url&quot;: &quot;https://mcp.deepwiki.com/mcp&quot;,&#10;      &quot;require_approval&quot;: &quot;never&quot;&#10;    }&#10;&#10;See the [Remote MCP Documentation](https://platform.openai.com/docs/guides/tools-remote-mcp) for more tips on Authenticating Remote MCP Tools, accessing multiple tools, and more. &#10;---&#10;&#10;##  Input&#10;&#10;| Parameter | Description |&#10;|-----------|-------------|&#10;| **Model** | The model to use for the request, such as `gpt-4`, `o1`. Review the [Model Guide](https://platform.openai.com/docs/models) to explore all available models and compare their capabilities.. |&#10;| **Instructions** | Optional: system-level instructions that guide the behavior of the model. |&#10;| **User Prompt** | The main prompt or query from the user. This is the content the model will respond to. |&#10;| **[Structured Output](https://platform.openai.com/docs/guides/structured-outputs?api-mode=responses)** | (Optional) A format or schema definition (JSON formatted) that guides the model to return output in a specific structure. |&#10;&#10;---&#10;&#10;##  Advanced&#10;&#10;These parameters offer finer control over model behavior and request handling.&#10;&#10;| Parameter | Description |&#10;|-----------|-------------|&#10;| **Temperature** | Controls randomness in responses. Default is `1`. Lower values produce more focused outputs. |&#10;| **Max Output Tokens** | Maximum number of tokens the model should generate in response. |&#10;| **User** | A user identifier to help OpenAI track and manage usage. Optional. |&#10;|**Connection Timeout**| This parameter can be used to set a timeout on HTTP connection requests. If a connection to the server cannot be created within the given number of seconds, the request will fail. |&#10;| **Transfer Timeout Length** | Sets the timeout duration (in seconds) for the request/response. Useful for longer or file-based actions. |&#10;| **Retry Failed Requests** | This parameter specifies the maximum number of retry attempts that will be made for a single feature. |&#10;&#10;&#10;---&#10;&#10;##  Notes&#10;&#10;- Parameters under **File Search** and **Vision** appear only when those actions are selected.&#10;- Use **Structured Output** to encourage reliable JSON responses from the model, especially for automation.&#10;- Make sure any uploaded files meet OpenAI&apos;s supported [formats and size restrictions](https://platform.openai.com/docs/guides/tools-file-search)."
#!   PYTHON_COMPATIBILITY=""
#!   REPLACED_BY=""
#!   SUPPRESS_UPGRADE="false"
#!   TITLE="OpenAIConnector"
#!   USAGE="&lt;h2 id=&quot;request&quot;&gt;Request&lt;/h2&gt;&#10;&lt;p&gt;These are the core parameters needed to make a request to the OpenAI API.&lt;/p&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Parameter&lt;/th&gt;&#10;&lt;th&gt;Description&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;API Key&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;Your &lt;a href=&quot;https://platform.openai.com/api-keys&quot;&gt;OpenAI API key&lt;/a&gt;. Required for authentication. Keep this key secure.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;Action&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;The type of operation to perform via the &lt;a href=&quot;https://platform.openai.com/docs/api-reference/responses/create&quot;&gt;Responses API&lt;/a&gt;. Supported options include: &lt;a href=&quot;https://platform.openai.com/docs/guides/text?api-mode=responses&quot;&gt;text generation&lt;/a&gt;, &lt;a href=&quot;https://platform.openai.com/docs/guides/images?api-mode=responses&quot;&gt;image (vision)&lt;/a&gt;, &lt;a href=&quot;https://platform.openai.com/docs/guides/tools-file-search&quot;&gt;file search&lt;/a&gt;, &lt;a href=&quot;https://platform.openai.com/docs/guides/tools-web-search?api-mode=responses&quot;&gt;web search&lt;/a&gt;, and &lt;a href=&quot;https://platform.openai.com/docs/guides/reasoning?api-mode=responses&quot;&gt;Reasoning&lt;/a&gt;.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr /&gt;&#10;&lt;h2 id=&quot;file-search-if-action-file-search&quot;&gt;File Search &lt;em&gt;(if Action = File Search)&lt;/em&gt;&lt;/h2&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Parameter&lt;/th&gt;&#10;&lt;th&gt;Description&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;File to Upload&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;The file to include in your file search request and temporarily uploaded to the &lt;a href=&quot;https://platform.openai.com/docs/api-reference/files. The uploaded file is automatically deleted after the workspace completes&quot;&gt;Files endpoint&lt;/a&gt;. This file will be uploaded and used in the context of the query. See the &lt;a href=&quot;https://platform.openai.com/docs/guides/tools-file-search&quot;&gt;File Search Documentation &lt;/a&gt; for more on supported formats and limitations.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr /&gt;&#10;&lt;h2 id=&quot;reasoning-if-action-reasoning&quot;&gt;Reasoning &lt;em&gt;(if Action = Reasoning)&lt;/em&gt;&lt;/h2&gt;&#10;&lt;p&gt;These parameters influence how much effort or depth the model should apply when answering a prompt.&lt;/p&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Parameter&lt;/th&gt;&#10;&lt;th&gt;Description&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;Effort&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;Indicates how much reasoning or depth the model should use. Values may include &lt;code&gt;low&lt;/code&gt;, &lt;code&gt;medium&lt;/code&gt;, or &lt;code&gt;high&lt;/code&gt;. Higher effort may result in longer or more detailed responses but may increase token usage.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr /&gt;&#10;&lt;h2 id=&quot;vision-if-action-vision&quot;&gt;Vision &lt;em&gt;(if Action = Vision)&lt;/em&gt;&lt;/h2&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Parameter&lt;/th&gt;&#10;&lt;th&gt;Description&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;File to Upload&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;File path to an image file to analyze.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;URL to Image&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;A direct URL to an image for remote processing. Either this or a file upload is required.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr /&gt;&#10;&lt;h2 id=&quot;embeddings-if-action-embeddings&quot;&gt;Embeddings &lt;em&gt;(if Action = Embeddings)&lt;/em&gt;&lt;/h2&gt;&#10;&lt;p&gt;Note: Selecting the Embeddings action hides the Request section because embeddings use a different API endpoint (/v1/embeddings) and require a separate set of parameters.&lt;/p&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Parameter&lt;/th&gt;&#10;&lt;th&gt;Description&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;Text to Embed&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;The input text to convert into an embedding vector. This can be a sentence, paragraph, or any other text content.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;Embedding Model&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;The model used to generate the embedding. Examples include &lt;code&gt;text-embedding-3-small&lt;/code&gt; and &lt;code&gt;text-embedding-3-large&lt;/code&gt;. See the &lt;a href=&quot;https://platform.openai.com/docs/guides/embeddings#model-selection&quot;&gt;Embeddings Model Guide&lt;/a&gt; for details. This field supports both selecting from a drop-down list and entering a custom model name.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr /&gt;&#10;&lt;h2 id=&quot;remote-mcp-if-action-remote-mcp&quot;&gt;Remote MCP &lt;em&gt;(if Action = Remote MCP)&lt;/em&gt;&lt;/h2&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Parameter&lt;/th&gt;&#10;&lt;th&gt;Description&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;*&lt;em&gt;MCP Tools (JSON)&lt;/em&gt;&lt;/td&gt;&#10;&lt;td&gt;List of 1 or more Tools to access via the Remote MCP Tool. This parameter expects to receive JSON. For example,&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;{&lt;/td&gt;&#10;&lt;td&gt;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&quot;type&quot;: &quot;mcp&quot;,&lt;/td&gt;&#10;&lt;td&gt;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&quot;server_label&quot;: &quot;deepwiki&quot;,&lt;/td&gt;&#10;&lt;td&gt;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&quot;server_url&quot;: &quot;https://mcp.deepwiki.com/mcp&quot;,&lt;/td&gt;&#10;&lt;td&gt;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&quot;require_approval&quot;: &quot;never&quot;&lt;/td&gt;&#10;&lt;td&gt;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;}&lt;/td&gt;&#10;&lt;td&gt;&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;h2 id=&quot;see-the-remote-mcp-documentation-for-more-tips-on-authenticating-remote-mcp-tools-accessing-multiple-tools-and-more&quot;&gt;See the &lt;a href=&quot;https://platform.openai.com/docs/guides/tools-remote-mcp&quot;&gt;Remote MCP Documentation&lt;/a&gt; for more tips on Authenticating Remote MCP Tools, accessing multiple tools, and more.&lt;/h2&gt;&#10;&lt;h2 id=&quot;input&quot;&gt;Input&lt;/h2&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Parameter&lt;/th&gt;&#10;&lt;th&gt;Description&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;Model&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;The model to use for the request, such as &lt;code&gt;gpt-4&lt;/code&gt;, &lt;code&gt;o1&lt;/code&gt;. Review the &lt;a href=&quot;https://platform.openai.com/docs/models&quot;&gt;Model Guide&lt;/a&gt; to explore all available models and compare their capabilities..&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;Instructions&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;Optional: system-level instructions that guide the behavior of the model.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;User Prompt&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;The main prompt or query from the user. This is the content the model will respond to.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;&lt;a href=&quot;https://platform.openai.com/docs/guides/structured-outputs?api-mode=responses&quot;&gt;Structured Output&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;(Optional) A format or schema definition (JSON formatted) that guides the model to return output in a specific structure.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr /&gt;&#10;&lt;h2 id=&quot;advanced&quot;&gt;Advanced&lt;/h2&gt;&#10;&lt;p&gt;These parameters offer finer control over model behavior and request handling.&lt;/p&gt;&#10;&lt;table&gt;&#10;&lt;thead&gt;&#10;&lt;tr&gt;&#10;&lt;th&gt;Parameter&lt;/th&gt;&#10;&lt;th&gt;Description&lt;/th&gt;&#10;&lt;/tr&gt;&#10;&lt;/thead&gt;&#10;&lt;tbody&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;Temperature&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;Controls randomness in responses. Default is &lt;code&gt;1&lt;/code&gt;. Lower values produce more focused outputs.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;Max Output Tokens&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;Maximum number of tokens the model should generate in response.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;User&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;A user identifier to help OpenAI track and manage usage. Optional.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;Connection Timeout&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;This parameter can be used to set a timeout on HTTP connection requests. If a connection to the server cannot be created within the given number of seconds, the request will fail.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;Transfer Timeout Length&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;Sets the timeout duration (in seconds) for the request/response. Useful for longer or file-based actions.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;tr&gt;&#10;&lt;td&gt;&lt;strong&gt;Retry Failed Requests&lt;/strong&gt;&lt;/td&gt;&#10;&lt;td&gt;This parameter specifies the maximum number of retry attempts that will be made for a single feature.&lt;/td&gt;&#10;&lt;/tr&gt;&#10;&lt;/tbody&gt;&#10;&lt;/table&gt;&#10;&lt;hr /&gt;&#10;&lt;h2 id=&quot;notes&quot;&gt;Notes&lt;/h2&gt;&#10;&lt;ul&gt;&#10;&lt;li&gt;Parameters under &lt;strong&gt;File Search&lt;/strong&gt; and &lt;strong&gt;Vision&lt;/strong&gt; appear only when those actions are selected.&lt;/li&gt;&#10;&lt;li&gt;Use &lt;strong&gt;Structured Output&lt;/strong&gt; to encourage reliable JSON responses from the model, especially for automation.&lt;/li&gt;&#10;&lt;li&gt;Make sure any uploaded files meet OpenAI&apos;s supported &lt;a href=&quot;https://platform.openai.com/docs/guides/tools-file-search&quot;&gt;formats and size restrictions&lt;/a&gt;.&lt;/li&gt;&#10;&lt;/ul&gt;"
#!   USE_MARKDOWN="YES"
#!   VIEW_POSITION="-9882.1 1446.01"
#!   XFORM_DEPRECATED="No"
#!   ZOOM_SCALE="100"
#! >
#! <GLOBAL_PARAMETERS>
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI LITERAL OPTIONAL NAMEDGROUP Request apiKey%Action Request"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI LITERAL PASSWORD apiKey API Key"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI CHOICE Action &quot;Text Generation&quot;%Vision%&quot;Web Search&quot;%&quot;File Search&quot;%Reasoning%Embeddings%&quot;Remote MCP&quot; Action"
#!   DEFAULT_VALUE="Text Generation"
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI OPTIONAL NAMEDGROUP_OR_ATTR Reasoning effort Reasoning"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI CHOICE_OR_ATTR effort low%medium%high Effort"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI OPTIONAL NAMEDGROUP fileSearch fileSearchUpload File Search"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI FILE_OR_URL_OR_ATTR fileSearchUpload NO_SWIZZLER%Supported(*.c;*.cpp;*.cs;*.css;*.doc;*.docx;*.go;*.html;*.java;*.js;*.json;*.md;*.pdf;*.php;*.pptx;*.py;*.rb;*.sh;*.tex;*.ts;*.txt)|*.c;*.cpp;*.cs;*.css;*.doc;*.docx;*.go;*.html;*.java;*.js;*.json;*.md;*.pdf;*.php;*.pptx;*.py;*.rb;*.sh;*.tex;*.ts;*.txt File to Upload"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI OPTIONAL NAMEDGROUP vision FileUpload%visionURLPath Vision"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI OPTIONAL ACTIVEDISCLOSUREGROUP_OR_ATTR FileUpload visionUploadFile File Upload"
#!   DEFAULT_VALUE="NO"
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI FILENAME_MUSTEXIST_OR_ATTR visionUploadFile Image_Files(*.png;*.jpeg;*.jpg;*.webp;*.gif)|*.png;*.jpeg;*.jpg;*.webp;*.gif File to Upload"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI OPTIONAL ACTIVEDISCLOSUREGROUP_OR_ATTR visionURLPath visionURL URL to Image"
#!   DEFAULT_VALUE="NO"
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI URL_OR_ATTR visionURL http%https URL to Upload"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI LITERAL OPTIONAL NAMEDGROUP Embeddings EmbeddingInput%EmbeddingModel Embeddings"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI STRING_OR_ATTR EmbeddingInput Text to Embed"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI STRING_OR_CHOICE_OR_ATTR EmbeddingModel text-embedding-3-small%text-embedding-3-large%text-embedding-ada-002 Embedding Model"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI LITERAL OPTIONAL NAMEDGROUP Input model%instructions%userPrompt%structuredOutput%MCP Input"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI STRING_OR_CHOICE_OR_ATTR model gpt-5%gpt-5-mini%gpt-5-nano%gpt-4.1%gpt-4o%o1%o3-deep-research Model"
#!   DEFAULT_VALUE="gpt-5"
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI OPTIONAL TEXT_EDIT_OR_ATTR instructions FME_SYNTAX%FME%FME_NO_WHITESPACE%NO%FME_INCLUDEBROWSE%YES%FME_INLINE%NO%FME_SUPPORTSNUMERIC%NO Instructions"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI TEXT_EDIT_OR_ATTR userPrompt FME_SYNTAX%FME%FME_NO_WHITESPACE%NO%FME_INCLUDEBROWSE%YES%FME_INLINE%NO%FME_SUPPORTSNUMERIC%NO User Prompt"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI LITERAL OPTIONAL ACTIVEDISCLOSUREGROUP structuredOutput JSONSchema Structured Output"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI TEXT_EDIT_OR_ATTR JSONSchema FME_SYNTAX%JSON%FME_INCLUDEBROWSE%YES%FME_INLINE%NO JSON Schema"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI LITERAL OPTIONAL NAMEDGROUP MCP MCPTools Remote MCP"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI TEXT_EDIT_OR_ATTR MCPTools FME_SYNTAX%JSON%FME_INCLUDEBROWSE%NO%FME_INLINE%NO MCP Tools (JSON)"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI OPTIONAL DISCLOSUREGROUP Advanced temperature%maxOutputTokens%user%TRANSFER_TIMEOUT_LENGTH%CONNECTION_TIMEOUT_LENGTH%RETRY_MAX_RETRIES Advanced"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI OPTIONAL RANGE_SLIDER_OR_ATTR temperature RANGE:[0,1]%ON Temperature"
#!   DEFAULT_VALUE="1"
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI OPTIONAL RANGE_SLIDER_OR_ATTR maxOutputTokens RANGE:(16,]%PRECISION:0 Max Output Tokens"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI OPTIONAL STRING_OR_ATTR user User"
#!   DEFAULT_VALUE=""
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI OPTIONAL RANGE_SLIDER_OR_ATTR TRANSFER_TIMEOUT_LENGTH RANGE:[0,]%PRECISION:0 Transfer Timeout (seconds)"
#!   DEFAULT_VALUE="360"
#!   IS_STAND_ALONE="true"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI RANGE_SLIDER_OR_ATTR CONNECTION_TIMEOUT_LENGTH RANGE:[0,]%PRECISION:0 Connection Timeout (seconds)"
#!   DEFAULT_VALUE="60"
#!   IS_STAND_ALONE="false"
#! />
#! <GLOBAL_PARAMETER
#!   GUI_LINE="GUI RANGE_SLIDER RETRY_MAX_RETRIES RANGE:[0,10]%PRECISION:0%ON Maximum Retry Attempts"
#!   DEFAULT_VALUE="0"
#!   IS_STAND_ALONE="false"
#! />
#! </GLOBAL_PARAMETERS>
#! <USER_PARAMETERS
#!   FORM="eyJwYXJhbWV0ZXJzIjpbeyJuYW1lIjoiUmVxdWVzdCIsInByb21wdCI6IlJlcXVlc3QiLCJ2YWx1ZVR5cGUiOiJzdHJpbmciLCJyZXF1aXJlZCI6ZmFsc2UsImRlZmF1bHRWYWx1ZSI6IiIsInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsibm9uZSJdLCJ0eXBlIjoiZ3JvdXAiLCJwYXJhbWV0ZXJzIjpbeyJuYW1lIjoiYXBpS2V5IiwicHJvbXB0IjoiQVBJIEtleSIsInZhbHVlVHlwZSI6InN0cmluZyIsImRlZmF1bHRWYWx1ZSI6IiIsInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsibm9uZSJdLCJ0eXBlIjoicGFzc3dvcmQifSx7Im5hbWUiOiJBY3Rpb24iLCJwcm9tcHQiOiJBY3Rpb24iLCJ2YWx1ZVR5cGUiOiJzdHJpbmciLCJkZWZhdWx0VmFsdWUiOiJUZXh0IEdlbmVyYXRpb24iLCJjaG9pY2VTZXR0aW5ncyI6eyJzb3J0Ijoibm9Tb3J0IiwiY2hvaWNlcyI6W3siZGlzcGxheSI6IlRleHQgR2VuZXJhdGlvbiIsInZhbHVlIjoiVGV4dCBHZW5lcmF0aW9uIn0seyJkaXNwbGF5IjoiVmlzaW9uIiwidmFsdWUiOiJWaXNpb24ifSx7ImRpc3BsYXkiOiJXZWIgU2VhcmNoIiwidmFsdWUiOiJXZWIgU2VhcmNoIn0seyJkaXNwbGF5IjoiRmlsZSBTZWFyY2giLCJ2YWx1ZSI6IkZpbGUgU2VhcmNoIn0seyJkaXNwbGF5IjoiUmVhc29uaW5nIiwidmFsdWUiOiJSZWFzb25pbmcifSx7ImRpc3BsYXkiOiJFbWJlZGRpbmdzIiwidmFsdWUiOiJFbWJlZGRpbmdzIn0seyJkaXNwbGF5IjoiUmVtb3RlIE1DUCIsInZhbHVlIjoiUmVtb3RlIE1DUCJ9XSwiY2hvaWNlU2V0IjoidXNlckRlZmluZWQifSwidHlwZSI6ImRyb3Bkb3duIn1dfSx7Im5hbWUiOiJSZWFzb25pbmciLCJwcm9tcHQiOiJSZWFzb25pbmciLCJ2YWx1ZVR5cGUiOiJzdHJpbmciLCJyZXF1aXJlZCI6ZmFsc2UsImRlZmF1bHRWYWx1ZSI6IiIsInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsiZXhwcmVzc2lvbiIsImdsb2JhbFBhcmFtZXRlciJdLCJ0eXBlIjoiZ3JvdXAiLCJwYXJhbWV0ZXJzIjpbeyJuYW1lIjoiZWZmb3J0IiwicHJvbXB0IjoiRWZmb3J0IiwidmFsdWVUeXBlIjoic3RyaW5nIiwiZGVmYXVsdFZhbHVlIjoiIiwidmlzaWJpbGl0eSI6eyJpZiI6W3siJGFsbE9mIjpbeyIkZXF1YWxzIjp7InBhcmFtZXRlciI6IkFjdGlvbiIsInZhbHVlIjoiUmVhc29uaW5nIn19LHsiJGlzRW5hYmxlZCI6eyJwYXJhbWV0ZXIiOiJBY3Rpb24ifX1dLCJ0aGVuIjoidmlzaWJsZUVuYWJsZWQifSx7InRoZW4iOiJoaWRkZW5FbmFibGVkIn1dfSwic3VwcG9ydGVkVmFsdWVUeXBlcyI6WyJleHByZXNzaW9uIiwiZ2xvYmFsUGFyYW1ldGVyIl0sImNob2ljZVNldHRpbmdzIjp7InNvcnQiOiJub1NvcnQiLCJjaG9pY2VzIjpbeyJkaXNwbGF5IjoibG93IiwidmFsdWUiOiJsb3cifSx7ImRpc3BsYXkiOiJtZWRpdW0iLCJ2YWx1ZSI6Im1lZGl1bSJ9LHsiZGlzcGxheSI6ImhpZ2giLCJ2YWx1ZSI6ImhpZ2gifV0sImNob2ljZVNldCI6InVzZXJEZWZpbmVkIn0sInR5cGUiOiJkcm9wZG93biJ9XX0seyJuYW1lIjoiZmlsZVNlYXJjaCIsInByb21wdCI6IkZpbGUgU2VhcmNoIiwidmFsdWVUeXBlIjoic3RyaW5nIiwicmVxdWlyZWQiOmZhbHNlLCJkZWZhdWx0VmFsdWUiOiIiLCJ2aXNpYmlsaXR5Ijp7ImlmIjpbeyIkYWxsT2YiOlt7IiRlcXVhbHMiOnsicGFyYW1ldGVyIjoiQWN0aW9uIiwidmFsdWUiOiJGaWxlIFNlYXJjaCJ9fSx7IiRpc0VuYWJsZWQiOnsicGFyYW1ldGVyIjoiQWN0aW9uIn19XSwidGhlbiI6InZpc2libGVFbmFibGVkIn0seyJ0aGVuIjoiaGlkZGVuRW5hYmxlZCJ9XX0sInR5cGUiOiJncm91cCIsInBhcmFtZXRlcnMiOlt7Im5hbWUiOiJmaWxlU2VhcmNoVXBsb2FkIiwicHJvbXB0IjoiRmlsZSB0byBVcGxvYWQiLCJ2YWx1ZVR5cGUiOiJzdHJpbmciLCJkZWZhdWx0VmFsdWUiOiIiLCJzdXBwb3J0ZWRWYWx1ZVR5cGVzIjpbImV4cHJlc3Npb24iLCJnbG9iYWxQYXJhbWV0ZXIiXSwidHlwZSI6ImZpbGUiLCJhY2Nlc3NNb2RlIjoicmVhZCIsIml0ZW1zVG9TZWxlY3QiOiJmaWxlcyIsInNlbGVjdE11bHRpcGxlIjpmYWxzZSwidmFsaWRhdGVFeGlzdGVuY2UiOmZhbHNlLCJmaWx0ZXJzIjpbeyJmaWx0ZXIiOlsiKi5jIiwiKi5jcHAiLCIqLmNzIiwiKi5jc3MiLCIqLmRvYyIsIiouZG9jeCIsIiouZ28iLCIqLmh0bWwiLCIqLmphdmEiLCIqLmpzIiwiKi5qc29uIiwiKi5tZCIsIioucGRmIiwiKi5waHAiLCIqLnBwdHgiLCIqLnB5IiwiKi5yYiIsIiouc2giLCIqLnRleCIsIioudHMiLCIqLnR4dCJdLCJkZXNjcmlwdGlvbiI6IlN1cHBvcnRlZCJ9XSwiYWxsb3dVUkwiOnRydWV9XX0seyJuYW1lIjoidmlzaW9uIiwicHJvbXB0IjoiVmlzaW9uIiwidmFsdWVUeXBlIjoic3RyaW5nIiwicmVxdWlyZWQiOmZhbHNlLCJkZWZhdWx0VmFsdWUiOiIiLCJ2aXNpYmlsaXR5Ijp7ImlmIjpbeyIkYWxsT2YiOlt7IiRlcXVhbHMiOnsicGFyYW1ldGVyIjoiQWN0aW9uIiwidmFsdWUiOiJWaXNpb24ifX0seyIkaXNFbmFibGVkIjp7InBhcmFtZXRlciI6IkFjdGlvbiJ9fV0sInRoZW4iOiJ2aXNpYmxlRW5hYmxlZCJ9LHsidGhlbiI6ImhpZGRlbkVuYWJsZWQifV19LCJ0eXBlIjoiZ3JvdXAiLCJwYXJhbWV0ZXJzIjpbeyJuYW1lIjoiRmlsZVVwbG9hZCIsInByb21wdCI6IkZpbGUgVXBsb2FkIiwidmFsdWVUeXBlIjoic3RyaW5nIiwicmVxdWlyZWQiOmZhbHNlLCJkZWZhdWx0VmFsdWUiOiJOTyIsInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsiZXhwcmVzc2lvbiIsImdsb2JhbFBhcmFtZXRlciJdLCJ0eXBlIjoiZ3JvdXAiLCJzdHlsZSI6ImNoZWNrYWJsZSIsInBhcmFtZXRlcnMiOlt7Im5hbWUiOiJ2aXNpb25VcGxvYWRGaWxlIiwicHJvbXB0IjoiRmlsZSB0byBVcGxvYWQiLCJ2YWx1ZVR5cGUiOiJzdHJpbmciLCJkZWZhdWx0VmFsdWUiOiIiLCJ2aXNpYmlsaXR5Ijp7ImlmIjpbeyIkYWxsT2YiOlt7IiRlcXVhbHMiOnsicGFyYW1ldGVyIjoiQWN0aW9uIiwidmFsdWUiOiJWaXNpb24ifX0seyIkaXNFbmFibGVkIjp7InBhcmFtZXRlciI6IkFjdGlvbiJ9fV0sInRoZW4iOiJ2aXNpYmxlRW5hYmxlZCJ9LHsidGhlbiI6ImhpZGRlbkVuYWJsZWQifV19LCJzdXBwb3J0ZWRWYWx1ZVR5cGVzIjpbImV4cHJlc3Npb24iLCJnbG9iYWxQYXJhbWV0ZXIiXSwidHlwZSI6ImZpbGUiLCJhY2Nlc3NNb2RlIjoicmVhZCIsIml0ZW1zVG9TZWxlY3QiOiJmaWxlcyIsInNlbGVjdE11bHRpcGxlIjpmYWxzZSwidmFsaWRhdGVFeGlzdGVuY2UiOnRydWUsImZpbHRlcnMiOlt7ImZpbHRlciI6WyIqLnBuZyIsIiouanBlZyIsIiouanBnIiwiKi53ZWJwIiwiKi5naWYiXSwiZGVzY3JpcHRpb24iOiJJbWFnZSBGaWxlcyJ9XX1dfSx7Im5hbWUiOiJ2aXNpb25VUkxQYXRoIiwicHJvbXB0IjoiVVJMIHRvIEltYWdlIiwidmFsdWVUeXBlIjoic3RyaW5nIiwicmVxdWlyZWQiOmZhbHNlLCJkZWZhdWx0VmFsdWUiOiJOTyIsInZpc2liaWxpdHkiOnsiaWYiOlt7IiRhbGxPZiI6W3siJG5vdCI6eyIkZXF1YWxzIjp7InBhcmFtZXRlciI6IkZpbGVVcGxvYWQiLCJ2YWx1ZSI6IllFUyJ9fX0seyIkaXNFbmFibGVkIjp7InBhcmFtZXRlciI6IkZpbGVVcGxvYWQifX1dLCJ0aGVuIjoidmlzaWJsZUVuYWJsZWQifSx7InRoZW4iOiJ2aXNpYmxlRGlzYWJsZWQifV19LCJzdXBwb3J0ZWRWYWx1ZVR5cGVzIjpbImV4cHJlc3Npb24iLCJnbG9iYWxQYXJhbWV0ZXIiXSwidHlwZSI6Imdyb3VwIiwic3R5bGUiOiJjaGVja2FibGUiLCJwYXJhbWV0ZXJzIjpbeyJuYW1lIjoidmlzaW9uVVJMIiwicHJvbXB0IjoiVVJMIHRvIFVwbG9hZCIsInZhbHVlVHlwZSI6InN0cmluZyIsImRlZmF1bHRWYWx1ZSI6IiIsInZpc2liaWxpdHkiOnsiaWYiOlt7IiRhbGxPZiI6W3siJGVxdWFscyI6eyJwYXJhbWV0ZXIiOiJBY3Rpb24iLCJ2YWx1ZSI6IlZpc2lvbiJ9fSx7IiRpc0VuYWJsZWQiOnsicGFyYW1ldGVyIjoiQWN0aW9uIn19XSwidGhlbiI6InZpc2libGVFbmFibGVkIn0seyJ0aGVuIjoiaGlkZGVuRW5hYmxlZCJ9XX0sInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsiZXhwcmVzc2lvbiIsImdsb2JhbFBhcmFtZXRlciJdLCJ0eXBlIjoidGV4dCIsImVkaXRvciI6InVybCIsInVybFNldHRpbmdzIjp7InZhbGlkU2NoZW1lcyI6WyJodHRwIiwiaHR0cHMiXX19XX1dfSx7Im5hbWUiOiJFbWJlZGRpbmdzIiwicHJvbXB0IjoiRW1iZWRkaW5ncyIsInZhbHVlVHlwZSI6InN0cmluZyIsInJlcXVpcmVkIjpmYWxzZSwiZGVmYXVsdFZhbHVlIjoiIiwidmlzaWJpbGl0eSI6eyJpZiI6W3siJGFsbE9mIjpbeyIkZXF1YWxzIjp7InBhcmFtZXRlciI6IkFjdGlvbiIsInZhbHVlIjoiRW1iZWRkaW5ncyJ9fSx7IiRpc0VuYWJsZWQiOnsicGFyYW1ldGVyIjoiQWN0aW9uIn19XSwidGhlbiI6InZpc2libGVFbmFibGVkIn0seyJ0aGVuIjoiaGlkZGVuRW5hYmxlZCJ9XX0sInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsibm9uZSJdLCJ0eXBlIjoiZ3JvdXAiLCJwYXJhbWV0ZXJzIjpbeyJuYW1lIjoiRW1iZWRkaW5nSW5wdXQiLCJwcm9tcHQiOiJUZXh0IHRvIEVtYmVkIiwidmFsdWVUeXBlIjoic3RyaW5nIiwiZGVmYXVsdFZhbHVlIjoiIiwic3VwcG9ydGVkVmFsdWVUeXBlcyI6WyJleHByZXNzaW9uIiwiZ2xvYmFsUGFyYW1ldGVyIl0sInR5cGUiOiJ0ZXh0Iiwic2hvd0VkaXRCdXR0b24iOmZhbHNlfSx7Im5hbWUiOiJFbWJlZGRpbmdNb2RlbCIsInByb21wdCI6IkVtYmVkZGluZyBNb2RlbCIsInZhbHVlVHlwZSI6InN0cmluZyIsImRlZmF1bHRWYWx1ZSI6IiIsInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsiZXhwcmVzc2lvbiIsImdsb2JhbFBhcmFtZXRlciJdLCJjaG9pY2VTZXR0aW5ncyI6eyJzb3J0IjoibmF0dXJhbFNvcnQiLCJjaG9pY2VzIjpbeyJkaXNwbGF5IjoidGV4dC1lbWJlZGRpbmctMy1zbWFsbCIsInZhbHVlIjoidGV4dC1lbWJlZGRpbmctMy1zbWFsbCJ9LHsiZGlzcGxheSI6InRleHQtZW1iZWRkaW5nLTMtbGFyZ2UiLCJ2YWx1ZSI6InRleHQtZW1iZWRkaW5nLTMtbGFyZ2UifSx7ImRpc3BsYXkiOiJ0ZXh0LWVtYmVkZGluZy1hZGEtMDAyIiwidmFsdWUiOiJ0ZXh0LWVtYmVkZGluZy1hZGEtMDAyIn1dLCJjaG9pY2VTZXQiOiJ1c2VyRGVmaW5lZCJ9LCJ0eXBlIjoidGV4dCJ9XX0seyJuYW1lIjoiSW5wdXQiLCJwcm9tcHQiOiJJbnB1dCIsInZhbHVlVHlwZSI6InN0cmluZyIsInJlcXVpcmVkIjpmYWxzZSwiZGVmYXVsdFZhbHVlIjoiIiwidmlzaWJpbGl0eSI6eyJpZiI6W3siJGFsbE9mIjpbeyIkbm90Ijp7IiRlcXVhbHMiOnsicGFyYW1ldGVyIjoiQWN0aW9uIiwidmFsdWUiOiJFbWJlZGRpbmdzIn19fSx7IiRpc0VuYWJsZWQiOnsicGFyYW1ldGVyIjoiQWN0aW9uIn19XSwidGhlbiI6InZpc2libGVFbmFibGVkIn0seyJ0aGVuIjoiaGlkZGVuRW5hYmxlZCJ9XX0sInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsibm9uZSJdLCJ0eXBlIjoiZ3JvdXAiLCJwYXJhbWV0ZXJzIjpbeyJuYW1lIjoibW9kZWwiLCJwcm9tcHQiOiJNb2RlbCIsInZhbHVlVHlwZSI6InN0cmluZyIsImRlZmF1bHRWYWx1ZSI6ImdwdC01Iiwic3VwcG9ydGVkVmFsdWVUeXBlcyI6WyJleHByZXNzaW9uIiwiZ2xvYmFsUGFyYW1ldGVyIl0sImNob2ljZVNldHRpbmdzIjp7InNvcnQiOiJub1NvcnQiLCJjaG9pY2VzIjpbeyJkaXNwbGF5IjoiZ3B0LTUiLCJ2YWx1ZSI6ImdwdC01In0seyJkaXNwbGF5IjoiZ3B0LTUtbWluaSIsInZhbHVlIjoiZ3B0LTUtbWluaSJ9LHsiZGlzcGxheSI6ImdwdC01LW5hbm8iLCJ2YWx1ZSI6ImdwdC01LW5hbm8ifSx7ImRpc3BsYXkiOiJncHQtNC4xIiwidmFsdWUiOiJncHQtNC4xIn0seyJkaXNwbGF5IjoiZ3B0LTRvIiwidmFsdWUiOiJncHQtNG8ifSx7ImRpc3BsYXkiOiJvMSIsInZhbHVlIjoibzEifSx7ImRpc3BsYXkiOiJvMy1kZWVwLXJlc2VhcmNoIiwidmFsdWUiOiJvMy1kZWVwLXJlc2VhcmNoIn1dLCJjaG9pY2VTZXQiOiJ1c2VyRGVmaW5lZCJ9LCJ0eXBlIjoidGV4dCJ9LHsibmFtZSI6Imluc3RydWN0aW9ucyIsInByb21wdCI6Ikluc3RydWN0aW9ucyIsInZhbHVlVHlwZSI6InN0cmluZ0VuY29kZWQiLCJyZXF1aXJlZCI6ZmFsc2UsImRlZmF1bHRWYWx1ZSI6IiIsInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsiZXhwcmVzc2lvbiIsImdsb2JhbFBhcmFtZXRlciJdLCJ0eXBlIjoidGV4dCIsInNob3dJbmxpbmVFZGl0b3IiOmZhbHNlLCJ0cmltV2hpdGVzcGFjZSI6ZmFsc2UsInNob3dFZGl0QnV0dG9uIjp0cnVlLCJzaG93QXJpdGhtZXRpY0VkaXRvciI6ZmFsc2V9LHsibmFtZSI6InVzZXJQcm9tcHQiLCJwcm9tcHQiOiJVc2VyIFByb21wdCIsInZhbHVlVHlwZSI6InN0cmluZ0VuY29kZWQiLCJkZWZhdWx0VmFsdWUiOiIiLCJzdXBwb3J0ZWRWYWx1ZVR5cGVzIjpbImV4cHJlc3Npb24iLCJnbG9iYWxQYXJhbWV0ZXIiXSwidHlwZSI6InRleHQiLCJzaG93SW5saW5lRWRpdG9yIjpmYWxzZSwidHJpbVdoaXRlc3BhY2UiOmZhbHNlLCJzaG93RWRpdEJ1dHRvbiI6dHJ1ZSwic2hvd0FyaXRobWV0aWNFZGl0b3IiOmZhbHNlfSx7Im5hbWUiOiJzdHJ1Y3R1cmVkT3V0cHV0IiwicHJvbXB0IjoiU3RydWN0dXJlZCBPdXRwdXQiLCJ2YWx1ZVR5cGUiOiJzdHJpbmciLCJyZXF1aXJlZCI6ZmFsc2UsImRlZmF1bHRWYWx1ZSI6IiIsInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsibm9uZSJdLCJ0eXBlIjoiZ3JvdXAiLCJzdHlsZSI6ImNoZWNrYWJsZSIsInBhcmFtZXRlcnMiOlt7Im5hbWUiOiJKU09OU2NoZW1hIiwicHJvbXB0IjoiSlNPTiBTY2hlbWEiLCJzaG93UHJvbXB0IjpmYWxzZSwidmFsdWVUeXBlIjoic3RyaW5nRW5jb2RlZCIsImRlZmF1bHRWYWx1ZSI6IiIsInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsiZXhwcmVzc2lvbiIsImdsb2JhbFBhcmFtZXRlciJdLCJ0eXBlIjoidGV4dCIsInNob3dJbmxpbmVFZGl0b3IiOmZhbHNlLCJzaG93RWRpdEJ1dHRvbiI6dHJ1ZSwiZWRpdG9yIjoianNvbiJ9XX0seyJuYW1lIjoiTUNQIiwicHJvbXB0IjoiUmVtb3RlIE1DUCIsInZhbHVlVHlwZSI6InN0cmluZyIsInJlcXVpcmVkIjpmYWxzZSwiZGVmYXVsdFZhbHVlIjoiIiwidmlzaWJpbGl0eSI6eyJpZiI6W3siJGFsbE9mIjpbeyIkZXF1YWxzIjp7InBhcmFtZXRlciI6IkFjdGlvbiIsInZhbHVlIjoiUmVtb3RlIE1DUCJ9fSx7IiRpc0VuYWJsZWQiOnsicGFyYW1ldGVyIjoiQWN0aW9uIn19XSwidGhlbiI6InZpc2libGVFbmFibGVkIn0seyJ0aGVuIjoiaGlkZGVuRGlzYWJsZWQifV19LCJzdXBwb3J0ZWRWYWx1ZVR5cGVzIjpbIm5vbmUiXSwidHlwZSI6Imdyb3VwIiwicGFyYW1ldGVycyI6W3sibmFtZSI6Ik1DUFRvb2xzIiwicHJvbXB0IjoiTUNQIFRvb2xzIChKU09OKSIsInZhbHVlVHlwZSI6InN0cmluZ0VuY29kZWQiLCJkZWZhdWx0VmFsdWUiOiIiLCJzdXBwb3J0ZWRWYWx1ZVR5cGVzIjpbImV4cHJlc3Npb24iLCJnbG9iYWxQYXJhbWV0ZXIiXSwidHlwZSI6InRleHQiLCJzaG93SW5saW5lRWRpdG9yIjpmYWxzZSwic2hvd0VkaXRCdXR0b24iOmZhbHNlLCJlZGl0b3IiOiJqc29uIn1dfV19LHsibmFtZSI6IkFkdmFuY2VkIiwicHJvbXB0IjoiQWR2YW5jZWQiLCJ2YWx1ZVR5cGUiOiJzdHJpbmciLCJyZXF1aXJlZCI6ZmFsc2UsImRlZmF1bHRWYWx1ZSI6IiIsInR5cGUiOiJncm91cCIsInN0eWxlIjoiY29sbGFwc2libGUiLCJwYXJhbWV0ZXJzIjpbeyJuYW1lIjoidGVtcGVyYXR1cmUiLCJwcm9tcHQiOiJUZW1wZXJhdHVyZSIsInZhbHVlVHlwZSI6InN0cmluZyIsInJlcXVpcmVkIjpmYWxzZSwiZGVmYXVsdFZhbHVlIjoiMSIsInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsiZXhwcmVzc2lvbiIsImdsb2JhbFBhcmFtZXRlciJdLCJ0eXBlIjoibnVtYmVyIiwibWluaW11bSI6MCwibWF4aW11bSI6MSwic2hvd1NsaWRlciI6dHJ1ZX0seyJuYW1lIjoibWF4T3V0cHV0VG9rZW5zIiwicHJvbXB0IjoiTWF4IE91dHB1dCBUb2tlbnMiLCJ2YWx1ZVR5cGUiOiJzdHJpbmciLCJyZXF1aXJlZCI6ZmFsc2UsImRlZmF1bHRWYWx1ZSI6IiIsInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsiZXhwcmVzc2lvbiIsImdsb2JhbFBhcmFtZXRlciJdLCJ0eXBlIjoibnVtYmVyIiwibWluaW11bSI6MTYsIm1pbmltdW1FeGNsdXNpdmUiOnRydWUsIm11bHRpcGxlT2YiOjF9LHsibmFtZSI6InVzZXIiLCJwcm9tcHQiOiJVc2VyIiwidmFsdWVUeXBlIjoic3RyaW5nIiwicmVxdWlyZWQiOmZhbHNlLCJkZWZhdWx0VmFsdWUiOiIiLCJzdXBwb3J0ZWRWYWx1ZVR5cGVzIjpbImV4cHJlc3Npb24iLCJnbG9iYWxQYXJhbWV0ZXIiXSwidHlwZSI6InRleHQiLCJzaG93RWRpdEJ1dHRvbiI6ZmFsc2V9LHsibmFtZSI6IlRSQU5TRkVSX1RJTUVPVVRfTEVOR1RIIiwicHJvbXB0IjoiVHJhbnNmZXIgVGltZW91dCAoc2Vjb25kcykiLCJ2YWx1ZVR5cGUiOiJzdHJpbmciLCJyZXF1aXJlZCI6ZmFsc2UsImRlZmF1bHRWYWx1ZSI6IjM2MCIsInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsiZXhwcmVzc2lvbiIsImdsb2JhbFBhcmFtZXRlciJdLCJ0eXBlIjoibnVtYmVyIiwibWluaW11bSI6MCwibXVsdGlwbGVPZiI6MX0seyJuYW1lIjoiQ09OTkVDVElPTl9USU1FT1VUX0xFTkdUSCIsInByb21wdCI6IkNvbm5lY3Rpb24gVGltZW91dCAoc2Vjb25kcykiLCJ2YWx1ZVR5cGUiOiJzdHJpbmciLCJkZWZhdWx0VmFsdWUiOiI2MCIsInN1cHBvcnRlZFZhbHVlVHlwZXMiOlsiZXhwcmVzc2lvbiIsImdsb2JhbFBhcmFtZXRlciJdLCJ0eXBlIjoibnVtYmVyIiwibWluaW11bSI6MCwibXVsdGlwbGVPZiI6MX0seyJuYW1lIjoiUkVUUllfTUFYX1JFVFJJRVMiLCJwcm9tcHQiOiJNYXhpbXVtIFJldHJ5IEF0dGVtcHRzIiwidmFsdWVUeXBlIjoic3RyaW5nIiwiZGVmYXVsdFZhbHVlIjoiMCIsInR5cGUiOiJudW1iZXIiLCJtaW5pbXVtIjowLCJtYXhpbXVtIjoxMCwibXVsdGlwbGVPZiI6MSwic2hvd1NsaWRlciI6dHJ1ZX1dfV19"
#! >
#! <PARAMETER_INFO>
#!     <INFO NAME="Request" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI LITERAL OPTIONAL NAMEDGROUP Request apiKey%Action Request"
#! />
#!     <INFO NAME="apiKey" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI LITERAL PASSWORD apiKey API Key"
#! />
#!     <INFO NAME="Action" 
#!   DEFAULT_VALUE="Text Generation"
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI CHOICE Action &quot;Text Generation&quot;%Vision%&quot;Web Search&quot;%&quot;File Search&quot;%Reasoning%Embeddings%&quot;Remote MCP&quot; Action"
#! />
#!     <INFO NAME="Reasoning" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI OPTIONAL NAMEDGROUP_OR_ATTR Reasoning effort Reasoning"
#! />
#!     <INFO NAME="effort" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI CHOICE_OR_ATTR effort low%medium%high Effort"
#! />
#!     <INFO NAME="fileSearch" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI OPTIONAL NAMEDGROUP fileSearch fileSearchUpload File Search"
#! />
#!     <INFO NAME="fileSearchUpload" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI FILE_OR_URL_OR_ATTR fileSearchUpload NO_SWIZZLER%Supported(*.c;*.cpp;*.cs;*.css;*.doc;*.docx;*.go;*.html;*.java;*.js;*.json;*.md;*.pdf;*.php;*.pptx;*.py;*.rb;*.sh;*.tex;*.ts;*.txt)|*.c;*.cpp;*.cs;*.css;*.doc;*.docx;*.go;*.html;*.java;*.js;*.json;*.md;*.pdf;*.php;*.pptx;*.py;*.rb;*.sh;*.tex;*.ts;*.txt File to Upload"
#! />
#!     <INFO NAME="vision" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI OPTIONAL NAMEDGROUP vision FileUpload%visionURLPath Vision"
#! />
#!     <INFO NAME="FileUpload" 
#!   DEFAULT_VALUE="NO"
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI OPTIONAL ACTIVEDISCLOSUREGROUP_OR_ATTR FileUpload visionUploadFile File Upload"
#! />
#!     <INFO NAME="visionUploadFile" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI FILENAME_MUSTEXIST_OR_ATTR visionUploadFile Image_Files(*.png;*.jpeg;*.jpg;*.webp;*.gif)|*.png;*.jpeg;*.jpg;*.webp;*.gif File to Upload"
#! />
#!     <INFO NAME="visionURLPath" 
#!   DEFAULT_VALUE="NO"
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI OPTIONAL ACTIVEDISCLOSUREGROUP_OR_ATTR visionURLPath visionURL URL to Image"
#! />
#!     <INFO NAME="visionURL" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI URL_OR_ATTR visionURL http%https URL to Upload"
#! />
#!     <INFO NAME="Embeddings" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI LITERAL OPTIONAL NAMEDGROUP Embeddings EmbeddingInput%EmbeddingModel Embeddings"
#! />
#!     <INFO NAME="EmbeddingInput" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI STRING_OR_ATTR EmbeddingInput Text to Embed"
#! />
#!     <INFO NAME="EmbeddingModel" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI STRING_OR_CHOICE_OR_ATTR EmbeddingModel text-embedding-3-small%text-embedding-3-large%text-embedding-ada-002 Embedding Model"
#! />
#!     <INFO NAME="Input" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI LITERAL OPTIONAL NAMEDGROUP Input model%instructions%userPrompt%structuredOutput%MCP Input"
#! />
#!     <INFO NAME="model" 
#!   DEFAULT_VALUE="gpt-5"
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI STRING_OR_CHOICE_OR_ATTR model gpt-5%gpt-5-mini%gpt-5-nano%gpt-4.1%gpt-4o%o1%o3-deep-research Model"
#! />
#!     <INFO NAME="instructions" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI OPTIONAL TEXT_EDIT_OR_ATTR instructions FME_SYNTAX%FME%FME_NO_WHITESPACE%NO%FME_INCLUDEBROWSE%YES%FME_INLINE%NO%FME_SUPPORTSNUMERIC%NO Instructions"
#! />
#!     <INFO NAME="userPrompt" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI TEXT_EDIT_OR_ATTR userPrompt FME_SYNTAX%FME%FME_NO_WHITESPACE%NO%FME_INCLUDEBROWSE%YES%FME_INLINE%NO%FME_SUPPORTSNUMERIC%NO User Prompt"
#! />
#!     <INFO NAME="structuredOutput" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI LITERAL OPTIONAL ACTIVEDISCLOSUREGROUP structuredOutput JSONSchema Structured Output"
#! />
#!     <INFO NAME="JSONSchema" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI TEXT_EDIT_OR_ATTR JSONSchema FME_SYNTAX%JSON%FME_INCLUDEBROWSE%YES%FME_INLINE%NO JSON Schema"
#! />
#!     <INFO NAME="MCP" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI LITERAL OPTIONAL NAMEDGROUP MCP MCPTools Remote MCP"
#! />
#!     <INFO NAME="MCPTools" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI TEXT_EDIT_OR_ATTR MCPTools FME_SYNTAX%JSON%FME_INCLUDEBROWSE%NO%FME_INLINE%NO MCP Tools (JSON)"
#! />
#!     <INFO NAME="Advanced" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI OPTIONAL DISCLOSUREGROUP Advanced temperature%maxOutputTokens%user%TRANSFER_TIMEOUT_LENGTH%CONNECTION_TIMEOUT_LENGTH%RETRY_MAX_RETRIES Advanced"
#! />
#!     <INFO NAME="temperature" 
#!   DEFAULT_VALUE="1"
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI OPTIONAL RANGE_SLIDER_OR_ATTR temperature RANGE:[0,1]%ON Temperature"
#! />
#!     <INFO NAME="maxOutputTokens" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI OPTIONAL RANGE_SLIDER_OR_ATTR maxOutputTokens RANGE:(16,]%PRECISION:0 Max Output Tokens"
#! />
#!     <INFO NAME="user" 
#!   DEFAULT_VALUE=""
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI OPTIONAL STRING_OR_ATTR user User"
#! />
#!     <INFO NAME="TRANSFER_TIMEOUT_LENGTH" 
#!   DEFAULT_VALUE="360"
#!   SCOPE="STAND_ALONE"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI OPTIONAL RANGE_SLIDER_OR_ATTR TRANSFER_TIMEOUT_LENGTH RANGE:[0,]%PRECISION:0 Transfer Timeout (seconds)"
#! />
#!     <INFO NAME="CONNECTION_TIMEOUT_LENGTH" 
#!   DEFAULT_VALUE="60"
#!   SCOPE="DEPENDENT"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI RANGE_SLIDER_OR_ATTR CONNECTION_TIMEOUT_LENGTH RANGE:[0,]%PRECISION:0 Connection Timeout (seconds)"
#! />
#!     <INFO NAME="RETRY_MAX_RETRIES" 
#!   DEFAULT_VALUE="0"
#!   SCOPE="DEPENDENT"
#!   GENERATED_GUI_LINE="true"
#!   GUI_LINE="GUI RANGE_SLIDER RETRY_MAX_RETRIES RANGE:[0,10]%PRECISION:0%ON Maximum Retry Attempts"
#! />
#! </PARAMETER_INFO>
#! </USER_PARAMETERS>
#! <COMMENTS>
#! <COMMENT
#!   IDENTIFIER="59"
#!   COMMENT_VALUE="&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0//EN&quot; &quot;http://www.w3.org/TR/REC-html40/strict.dtd&quot;&gt;&#10;&lt;html&gt;&lt;head&gt;&lt;meta name=&quot;qrichtext&quot; content=&quot;1&quot; /&gt;&lt;meta charset=&quot;utf-8&quot; /&gt;&lt;style type=&quot;text/css&quot;&gt;&#10;p, li { white-space: pre-wrap; }&#10;&lt;/style&gt;&lt;/head&gt;&lt;body style=&quot; font-family:&apos;helvetica&apos;; font-size:13pt; font-weight:400; font-style:normal;&quot;&gt;&#10;&lt;p style=&quot; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;&quot;&gt;Replace invalid JSON characters with escaped character equivalent&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;"
#!   POSITION="-8545.4787778346526 679.61564299541897"
#!   TOP_LEFT="-8545.4787778346526 679.61564299541897"
#!   BOTTOM_RIGHT="-7184.9812978598529 678.61564299541897"
#!   BOUNDING_RECT="-8545.4787778346526 679.61564299541897 1360.4974799747997 1"
#!   ORDER="500000000000050"
#!   FOLLOW_ANCHOR="true"
#!   INFO_NODE="false"
#!   CUSTOM_USER_COLOR="false"
#!   UUID="{08641baa-1aaf-433b-b68e-ac457be74246}"
#!   COLOUR="1,0.85490196078431369,0.59999999999999998,1"
#!   SIZE_POLICY="10"
#!   ANCHORED_NODE="60"
#! />
#! </COMMENTS>
#! <CONSTANTS>
#! </CONSTANTS>
#! <BOOKMARKS>
#! <BOOKMARK
#!   IDENTIFIER="60"
#!   NAME="Escape JSON, Remote Empty/Null Values, Format Upload Body"
#!   DESCRIPTION=""
#!   TOP_LEFT="-8775.1006540534163 800.6150129891189"
#!   ORDER="500000000000135.38"
#!   PALETTE_COLOR="Color3"
#!   BOTTOM_RIGHT="-6956.1611310382896 -298.67099361301234"
#!   BOUNDING_RECT="-8775.1006540534163 800.6150129891189 1818.9395230151267 1099.2860066021312"
#!   STICKY="true"
#!   COLOUR="1,0.85490196078431369,0.59999999999999998,1"
#!   CONTENTS="43 21 15 44 18 47 59 16 17 19 24 38 41 42 25 20 39 40 "
#! >
#! </BOOKMARK>
#! <BOOKMARK
#!   IDENTIFIER="61"
#!   NAME="Encode binary if uploading vision file"
#!   DESCRIPTION=""
#!   TOP_LEFT="-9613.2999871498796 1247.1166440546604"
#!   ORDER="500000000000128.13"
#!   PALETTE_COLOR="Workflow3"
#!   BOTTOM_RIGHT="-8805.1009540564137 568.11601404836028"
#!   BOUNDING_RECT="-9613.2999871498796 1247.1166440546604 808.19903309346591 679.00063000630007"
#!   STICKY="true"
#!   COLOUR="0.67843137254901964,0.88235294117647056,0.92156862745098034,1"
#!   CONTENTS="9 31 8 "
#! >
#! </BOOKMARK>
#! <BOOKMARK
#!   IDENTIFIER="62"
#!   NAME="Validate JSON if Structured Output is Enabled"
#!   DESCRIPTION=""
#!   TOP_LEFT="-11515.399985386195 1059.1166740549606"
#!   ORDER="500000000000129.13"
#!   PALETTE_COLOR="Workflow1"
#!   BOTTOM_RIGHT="-10378.329988348944 443.11667405496064"
#!   BOUNDING_RECT="-11515.399985386195 1059.1166740549606 1137.0699970372516 616"
#!   STICKY="true"
#!   COLOUR="0.32549019607843138,0.62352941176470589,0.92549019607843142,1"
#!   CONTENTS="14 37 13 "
#! >
#! </BOOKMARK>
#! <BOOKMARK
#!   IDENTIFIER="63"
#!   NAME="Input: Expose parameters and  replace &lt;Unused&gt; values"
#!   DESCRIPTION=""
#!   TOP_LEFT="-13221.145114498018 829.34028649978882"
#!   ORDER="500000000000130.13"
#!   PALETTE_COLOR="Workflow2"
#!   BOTTOM_RIGHT="-11562.346368512744 497.11667405496064"
#!   BOUNDING_RECT="-13221.145114498018 829.34028649978882 1658.7987459852739 332.22361244482818"
#!   STICKY="true"
#!   COLOUR="0.58039215686274515,0.65490196078431373,1,1"
#!   CONTENTS="10 27 30 2 7 "
#! >
#! </BOOKMARK>
#! <BOOKMARK
#!   IDENTIFIER="64"
#!   NAME="Upload file if file search is enabled"
#!   DESCRIPTION=""
#!   TOP_LEFT="-9612.2999871498796 139.11181400636008"
#!   ORDER="500000000000132.13"
#!   PALETTE_COLOR="Workflow3"
#!   BOTTOM_RIGHT="-8805.1009540564137 -298.67099361301229"
#!   BOUNDING_RECT="-9612.2999871498796 139.11181400636008 807.19903309346591 437.78280761937236"
#!   STICKY="true"
#!   COLOUR="0.67843137254901964,0.88235294117647056,0.92156862745098034,1"
#!   CONTENTS="5 "
#! >
#! </BOOKMARK>
#! <BOOKMARK
#!   IDENTIFIER="65"
#!   NAME="Delete File if file search enabled, else output"
#!   DESCRIPTION=""
#!   TOP_LEFT="-6302.7133351305574 498.61510887207169"
#!   ORDER="500000000000137.13"
#!   PALETTE_COLOR="Workflow1"
#!   BOTTOM_RIGHT="-4866.0615636625107 -60.888996001740907"
#!   BOUNDING_RECT="-6302.7133351305574 498.61510887207169 1436.6517714680467 559.50410487381259"
#!   STICKY="true"
#!   COLOUR="0.32549019607843138,0.62352941176470589,0.92549019607843142,1"
#!   CONTENTS="46 23 11 "
#! >
#! </BOOKMARK>
#! <BOOKMARK
#!   IDENTIFIER="66"
#!   NAME="Schema cleanup and output"
#!   DESCRIPTION=""
#!   TOP_LEFT="-5687.8803201841965 -138.8914546491194"
#!   ORDER="500000000000139.13"
#!   PALETTE_COLOR="Workflow2"
#!   BOTTOM_RIGHT="-4485.0577536244109 -649.8928646632196"
#!   BOUNDING_RECT="-5687.8803201841965 -138.8914546491194 1202.8225665597856 511.00141001410014"
#!   STICKY="true"
#!   COLOUR="0.58039215686274515,0.65490196078431373,1,1"
#!   CONTENTS="35 12 4 3 "
#! >
#! </BOOKMARK>
#! <BOOKMARK
#!   IDENTIFIER="67"
#!   NAME="Create Embedding "
#!   DESCRIPTION=""
#!   TOP_LEFT="-9613.2999871498796 -364.23236230356156"
#!   ORDER="500000000000146.13"
#!   PALETTE_COLOR="Workflow1"
#!   BOTTOM_RIGHT="-8595.0997340442118 -953.11294501922089"
#!   BOUNDING_RECT="-9613.2999871498796 -364.23236230356156 1018.2002531056669 588.88058271565933"
#!   STICKY="true"
#!   COLOUR="0.32549019607843138,0.62352941176470589,0.92549019607843142,1"
#!   CONTENTS="26 "
#! >
#! </BOOKMARK>
#! </BOOKMARKS>
#! <TRANSFORMERS>
#! <TRANSFORMER
#!   IDENTIFIER="5"
#!   TYPE="OpenAPICaller"
#!   VERSION="0"
#!   POSITION="-9563.2999871498796 19.111814006360078"
#!   BOUNDING_RECT="-9563.2999871498796 19.111814006360078 667.953125 65"
#!   ORDER="500000000000012"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25208"
#! >
#!     <OUTPUT_FEAT NAME="Output"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_error" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_PARM PARM_NAME="ADVANCED_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ADVANCED_REQUEST_PARAMETERS" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="AUTH_METHOD" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AUTH_NAMED_CONNECTION" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AUTH_PASSWORD" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AUTH_USERNAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_FILE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_FROM_OS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_PASSWORD" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_PRIVATE_KEY_FILE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_TYPE" PARM_VALUE="NONE"/>
#!     <XFORM_PARM PARM_NAME="CONCURRENCY_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CONNECTION_TIMEOUT_LENGTH" PARM_VALUE="@Value(_CONNECTION_TIMEOUT_LENGTH)"/>
#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS" PARM_VALUE="Authorization;Bearer&lt;space&gt;$(apiKey)"/>
#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ENDPOINT_SELECTOR_SETTINGS" PARM_VALUE="API_SOURCE,https:&lt;solidus&gt;&lt;solidus&gt;github.com&lt;solidus&gt;openai&lt;solidus&gt;openai-openapi&lt;solidus&gt;blob&lt;solidus&gt;master&lt;solidus&gt;openapi.yaml,ENDPOINT,&lt;solidus&gt;files&lt;comma&gt;POST,PREVIEW_HEADER_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_HEADER_TABLE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_PATH_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_PATH_TABLE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_QUERY_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_QUERY_TABLE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_SAMPLE_RESPONSE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_SAMPLE_RESPONSE_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,STATUS_GROUP,FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ERROR_ATTR" PARM_VALUE="_error"/>
#!     <XFORM_PARM PARM_NAME="FILE_PATH_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="FILE_PATH_ATTR2" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="FILE_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="FOLLOW_REDIRECTS" PARM_VALUE="FOLLOW_WITH_GET"/>
#!     <XFORM_PARM PARM_NAME="FULL_URL" PARM_VALUE="https://api.openai.com/v1/files"/>
#!     <XFORM_PARM PARM_NAME="HOST" PARM_VALUE="https://api.openai.com/v1"/>
#!     <XFORM_PARM PARM_NAME="HOST_CHOICES" PARM_VALUE="https://api.openai.com/v1"/>
#!     <XFORM_PARM PARM_NAME="HTTPURL_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="HTTP_AUTH_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="HTTP_METHOD" PARM_VALUE="POST"/>
#!     <XFORM_PARM PARM_NAME="IMPORT_API_SPECS_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="IMPORT_SPEC_VALUES" PARM_VALUE="https://github.com/openai/openai-openapi/blob/master/openapi.yaml,/files,POST,&quot;Upload a file that can be used across various endpoints. Individual files can be up to 512 MB, and the size of all files uploaded by one organization can be up to 100 GB.&#10;&#10;The Assistants API supports files up to 2 million tokens and of specific file types. See the [Assistants Tools guide](/docs/assistants/tools) for details.&#10;&#10;The Fine-tuning API only supports `.jsonl` files. The input also has certain required formats for fine-tuning [chat](/docs/api-reference/fine-tuning/chat-input) or [completions](/docs/api-reference/fine-tuning/completions-input) models.&#10;&#10;The Batch API only supports `.jsonl` files up to 200 MB in size. The input also has a specific required [format](/docs/api-reference/batch/request-input).&#10;&#10;Please [contact us](https://help.openai.com/) if you need to increase these storage limits.&#10;&quot;"/>
#!     <XFORM_PARM PARM_NAME="JSON_FRAGMENT_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="JSON_QUERY" PARM_VALUE="json&lt;openbracket&gt;&lt;quote&gt;id&lt;quote&gt;&lt;closebracket&gt;"/>
#!     <XFORM_PARM PARM_NAME="LOOP_MESSAGE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="MAX_HTTP_VERSION" PARM_VALUE="HTTP_2"/>
#!     <XFORM_PARM PARM_NAME="MAX_TRANSFERS_IN_PROGRESS" PARM_VALUE="25"/>
#!     <XFORM_PARM PARM_NAME="MINIMUM_ENCRYPTION_LEVEL" PARM_VALUE="OS_DEFAULT"/>
#!     <XFORM_PARM PARM_NAME="MULTIPARTS" PARM_VALUE="purpose StringUpload SOURCE_EXPRESSION;user_data;MIME_TYPE;text&lt;solidus&gt;plain;FME_CONTROLLER_QUERY_FILE;transformers&lt;solidus&gt;dependencies&lt;solidus&gt;http&lt;solidus&gt;StringUpload.fme;FME_CONTROLLER_CHOICE;StringUpload file FileUpload SOURCE_FILE;&lt;at&gt;Value&lt;openparen&gt;_fileSearchUpload&lt;closeparen&gt;;MIME_TYPE;text&lt;solidus&gt;plain;FME_CONTROLLER_QUERY_FILE;transformers&lt;solidus&gt;dependencies&lt;solidus&gt;http&lt;solidus&gt;FileUpload.fme;FME_CONTROLLER_CHOICE;FileUpload"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_CONTENT_TYPE" PARM_VALUE="FORM_DATA"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_RESPONSE_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_RESPONSE_HEADER_LIST_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_CONFIG_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_DIRNAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_FILENAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="PATH_VARIABLES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PATH_VARIABLES_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="QUERY_PARAMETERS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="QUERY_PARAMETERS_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_INTERVAL_IN_SECONDS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_MAX_REQUESTS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_REQUEST_TIMING" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="REDIRECT_AUTH" PARM_VALUE="ORIGINAL_DOMAIN_ONLY"/>
#!     <XFORM_PARM PARM_NAME="REQUEST_PREVIEW_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_ATTRS_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_ATTR_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_DIR_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_FILE_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_HANDLING_MODE" PARM_VALUE="json_fragments"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_HEADER_LIST_ATTR" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RETRY_FAILED_TRANSFERS" PARM_VALUE="CONNECTION 429 500 501 502 503 504 505 506 507 508 509 510 511"/>
#!     <XFORM_PARM PARM_NAME="RETRY_GROUP" PARM_VALUE="YES"/>
#!     <XFORM_PARM PARM_NAME="RETRY_INITIAL_BACKOFF" PARM_VALUE="500"/>
#!     <XFORM_PARM PARM_NAME="RETRY_MAX_RETRIES" PARM_VALUE="$(RETRY_MAX_RETRIES)"/>
#!     <XFORM_PARM PARM_NAME="SAVE_ENTIRE_RESPONSE_BODY_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SAVE_FILE_LOOKUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SPLIT_MULTIPART_DOWNLOADS" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="STATUS_CODE_ATTR" PARM_VALUE="_http_status_code"/>
#!     <XFORM_PARM PARM_NAME="TARGET_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TARGET_ATTR_ENCODING" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TARGET_URL" PARM_VALUE="https:&lt;solidus&gt;&lt;solidus&gt;api.openai.com&lt;solidus&gt;v1&lt;solidus&gt;files"/>
#!     <XFORM_PARM PARM_NAME="TEMP_JSON_FILEPATH" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_ATTRIBUTE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_REQUEST_PARAMETERS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_RESPONSE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_STATUS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_USER_PARAMETER" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TLS_CLIENT_CERTIFICATE" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="TLS_PARAMETERS" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="TRANSFER_TIMEOUT_LENGTH" PARM_VALUE="@Value(_TRANSFER_TIMEOUT_LENGTH)"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_BODY" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_CONTENT_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_FILE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_TYPE" PARM_VALUE="MULTIPART_UPLOAD"/>
#!     <XFORM_PARM PARM_NAME="URL_BY_PARAMETERS_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="USE_COOKIES" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="USE_FRAGMENTER" PARM_VALUE="*"/>
#!     <XFORM_PARM PARM_NAME="VERIFY_SSL_CERTIFICATES" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="OpenAPICaller_UploadFile"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="6"
#!   TYPE="OpenAPICaller"
#!   VERSION="0"
#!   POSITION="-6879.6209351440584 241.11322402045903"
#!   BOUNDING_RECT="-6879.6209351440584 241.11322402045903 441.90625 65"
#!   ORDER="500000000000012"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25208"
#! >
#!     <OUTPUT_FEAT NAME="Output"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="FileId" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_FileIdNoQuotes" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="message" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="UploadBody" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_ATTR ATTR_NAME="FileId" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_FileIdNoQuotes" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="message" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="UploadBody" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_error" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_PARM PARM_NAME="ADVANCED_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ADVANCED_REQUEST_PARAMETERS" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="AUTH_METHOD" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AUTH_NAMED_CONNECTION" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AUTH_PASSWORD" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AUTH_USERNAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_FILE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_FROM_OS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_PASSWORD" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_PRIVATE_KEY_FILE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_TYPE" PARM_VALUE="NONE"/>
#!     <XFORM_PARM PARM_NAME="CONCURRENCY_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CONNECTION_TIMEOUT_LENGTH" PARM_VALUE="@Value(_CONNECTION_TIMEOUT_LENGTH)"/>
#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS" PARM_VALUE="Authorization;Bearer&lt;space&gt;$(apiKey)"/>
#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ENDPOINT_SELECTOR_SETTINGS" PARM_VALUE="API_SOURCE,https:&lt;solidus&gt;&lt;solidus&gt;github.com&lt;solidus&gt;openai&lt;solidus&gt;openai-openapi&lt;solidus&gt;blob&lt;solidus&gt;master&lt;solidus&gt;openapi.yaml,ENDPOINT,&lt;solidus&gt;responses&lt;comma&gt;POST,PREVIEW_HEADER_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_HEADER_TABLE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_PATH_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_PATH_TABLE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_QUERY_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_QUERY_TABLE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_SAMPLE_RESPONSE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_SAMPLE_RESPONSE_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,STATUS_GROUP,FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ERROR_ATTR" PARM_VALUE="_error"/>
#!     <XFORM_PARM PARM_NAME="FILE_PATH_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="FILE_PATH_ATTR2" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="FILE_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="FOLLOW_REDIRECTS" PARM_VALUE="FOLLOW_WITH_GET"/>
#!     <XFORM_PARM PARM_NAME="FULL_URL" PARM_VALUE="https://api.openai.com/v1/responses"/>
#!     <XFORM_PARM PARM_NAME="HOST" PARM_VALUE="https://api.openai.com/v1"/>
#!     <XFORM_PARM PARM_NAME="HOST_CHOICES" PARM_VALUE="https://api.openai.com/v1"/>
#!     <XFORM_PARM PARM_NAME="HTTPURL_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="HTTP_AUTH_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="HTTP_METHOD" PARM_VALUE="POST"/>
#!     <XFORM_PARM PARM_NAME="IMPORT_API_SPECS_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="IMPORT_SPEC_VALUES" PARM_VALUE="https://github.com/openai/openai-openapi/blob/master/openapi.yaml,/responses,POST,&quot;Creates a model response. Provide [text](/docs/guides/text) or&#10;[image](/docs/guides/images) inputs to generate [text](/docs/guides/text)&#10;or [JSON](/docs/guides/structured-outputs) outputs. Have the model call&#10;your own [custom code](/docs/guides/function-calling) or use built-in&#10;[tools](/docs/guides/tools) like [web search](/docs/guides/tools-web-search)&#10;or [file search](/docs/guides/tools-file-search) to use your own data&#10;as input for the model&apos;s response.&#10;&quot;"/>
#!     <XFORM_PARM PARM_NAME="JSON_FRAGMENT_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="JSON_QUERY" PARM_VALUE="json&lt;openbracket&gt;&lt;quote&gt;output&lt;quote&gt;&lt;closebracket&gt;&lt;openbracket&gt;*&lt;closebracket&gt;&lt;openbracket&gt;&lt;quote&gt;content&lt;quote&gt;&lt;closebracket&gt;&lt;openbracket&gt;*&lt;closebracket&gt;&lt;openbracket&gt;&lt;quote&gt;text&lt;quote&gt;&lt;closebracket&gt;"/>
#!     <XFORM_PARM PARM_NAME="LOOP_MESSAGE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="MAX_HTTP_VERSION" PARM_VALUE="HTTP_2"/>
#!     <XFORM_PARM PARM_NAME="MAX_TRANSFERS_IN_PROGRESS" PARM_VALUE="25"/>
#!     <XFORM_PARM PARM_NAME="MINIMUM_ENCRYPTION_LEVEL" PARM_VALUE="OS_DEFAULT"/>
#!     <XFORM_PARM PARM_NAME="MULTIPARTS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_CONTENT_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_RESPONSE_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_RESPONSE_HEADER_LIST_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_CONFIG_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_DIRNAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_FILENAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="PATH_VARIABLES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PATH_VARIABLES_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="QUERY_PARAMETERS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="QUERY_PARAMETERS_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_INTERVAL_IN_SECONDS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_MAX_REQUESTS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_REQUEST_TIMING" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="REDIRECT_AUTH" PARM_VALUE="ORIGINAL_DOMAIN_ONLY"/>
#!     <XFORM_PARM PARM_NAME="REQUEST_PREVIEW_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_ATTRS_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_ATTR_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_DIR_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_FILE_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_HANDLING_MODE" PARM_VALUE="json_fragments"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_HEADER_LIST_ATTR" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RETRY_FAILED_TRANSFERS" PARM_VALUE="CONNECTION 429 500 501 502 503 504 505 506 507 508 509 510 511"/>
#!     <XFORM_PARM PARM_NAME="RETRY_GROUP" PARM_VALUE="YES"/>
#!     <XFORM_PARM PARM_NAME="RETRY_INITIAL_BACKOFF" PARM_VALUE="500"/>
#!     <XFORM_PARM PARM_NAME="RETRY_MAX_RETRIES" PARM_VALUE="$(RETRY_MAX_RETRIES)"/>
#!     <XFORM_PARM PARM_NAME="SAVE_ENTIRE_RESPONSE_BODY_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SAVE_FILE_LOOKUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SPLIT_MULTIPART_DOWNLOADS" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="STATUS_CODE_ATTR" PARM_VALUE="_http_status_code"/>
#!     <XFORM_PARM PARM_NAME="TARGET_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TARGET_ATTR_ENCODING" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TARGET_URL" PARM_VALUE="https:&lt;solidus&gt;&lt;solidus&gt;api.openai.com&lt;solidus&gt;v1&lt;solidus&gt;responses"/>
#!     <XFORM_PARM PARM_NAME="TEMP_JSON_FILEPATH" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_ATTRIBUTE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_REQUEST_PARAMETERS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_RESPONSE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_STATUS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_USER_PARAMETER" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TLS_CLIENT_CERTIFICATE" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="TLS_PARAMETERS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFER_TIMEOUT_LENGTH" PARM_VALUE="@Value(_TRANSFER_TIMEOUT_LENGTH)"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_BODY" PARM_VALUE="&lt;at&gt;Value&lt;openparen&gt;UploadBody&lt;closeparen&gt;"/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_CONTENT_TYPE" PARM_VALUE="application/json"/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_FILE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_TYPE" PARM_VALUE="STRING_UPLOAD"/>
#!     <XFORM_PARM PARM_NAME="URL_BY_PARAMETERS_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="USE_COOKIES" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="USE_FRAGMENTER" PARM_VALUE="*"/>
#!     <XFORM_PARM PARM_NAME="VERIFY_SSL_CERTIFICATES" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="OpenAPICaller"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="7"
#!   TYPE="ParameterFetcher"
#!   VERSION="4"
#!   POSITION="-12621.751920815335 718.11667405496064"
#!   BOUNDING_RECT="-12621.751920815335 718.11667405496064 436 65"
#!   ORDER="500000000000046"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25615"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="ATTR_LIST" PARM_VALUE="_Action $(Action) _fileSearchUpload $(fileSearchUpload) _visionUploadFile $(visionUploadFile) _model $(model) _instructions $(instructions) _JSONSchema $(JSONSchema) _temperature $(temperature) _maxOutputTokens $(maxOutputTokens) _TRANSFER_TIMEOUT_LENGTH $(TRANSFER_TIMEOUT_LENGTH) _visionURL $(visionURL) _userPrompt $(userPrompt) _user $(user) _maxOutputTokens $(maxOutputTokens) _effort $(effort) _CONNECTION_TIMEOUT_LENGTH $(CONNECTION_TIMEOUT_LENGTH) _RETRY_MAX_RETRIES $(RETRY_MAX_RETRIES) _EmbeddingInput $(EmbeddingInput) _EmbeddingModel $(EmbeddingModel) _MCPTools $(MCPTools)"/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="ParameterFetcher"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="8"
#!   TYPE="AttributeFileReader"
#!   VERSION="5"
#!   POSITION="-9563.2999871498796 1157.1166440546604"
#!   BOUNDING_RECT="-9563.2999871498796 1157.1166440546604 534.609375 65"
#!   ORDER="500000000000050"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="24783"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_PARM PARM_NAME="CHAR_ENCODING" PARM_VALUE="fme-binary"/>
#!     <XFORM_PARM PARM_NAME="DEST_ATTR" PARM_VALUE="_file_contents"/>
#!     <XFORM_PARM PARM_NAME="FILE_NAME" PARM_VALUE="FME_CONDITIONAL:DEFAULT_VALUE&apos;&lt;at&gt;Value&lt;openparen&gt;_fileSearchUpload&lt;closeparen&gt;&apos;BOOL_OP;OR;COMPOSITE_TEST;1;TEST &lt;at&gt;Value&lt;openparen&gt;_Action&lt;closeparen&gt; = Vision&apos;&lt;at&gt;Value&lt;openparen&gt;_visionUploadFile&lt;closeparen&gt;&apos;FME_NUM_CONDITIONS2___"/>
#!     <XFORM_PARM PARM_NAME="OAN_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeFileReader"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="9"
#!   TYPE="BinaryEncoder"
#!   VERSION="2"
#!   POSITION="-9457.0329521357799 783.11601404836028"
#!   BOUNDING_RECT="-9457.0329521357799 783.11601404836028 436 65"
#!   ORDER="500000000000051"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="24783"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="ATTR_TABLE" PARM_VALUE="_file_contents _file_contents"/>
#!     <XFORM_PARM PARM_NAME="ATTR_TABLE_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ENCODING_TYPE_LOOKUP" PARM_VALUE="BASE64_ENCODE"/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="BinaryEncoder"/>
#!     <XFORM_PARM PARM_NAME="ENCODING_TYPE" PARM_IS_LOOKUP="true" PARM_VALUE="Base64"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="10"
#!   TYPE="StringReplacer"
#!   VERSION="5"
#!   POSITION="-12066.346368512744 718.11667405496064"
#!   BOUNDING_RECT="-12066.346368512744 718.11667405496064 454 71"
#!   ORDER="500000000000031"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25615"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="CASE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="FIND_TEXT" PARM_VALUE="&lt;backslash&gt;&lt;lt&gt;Unused&lt;backslash&gt;&lt;gt&gt;"/>
#!     <XFORM_PARM PARM_NAME="NO_MATCH" PARM_VALUE="_FME_NO_OP_"/>
#!     <XFORM_PARM PARM_NAME="NO_MATCH_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="REGEXP" PARM_VALUE="YES"/>
#!     <XFORM_PARM PARM_NAME="REPLACE_TEXT" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="SRC_ATTRS" PARM_VALUE="_Action,_fileSearchUpload,_instructions,_JSONSchema,_maxOutputTokens,_model,_temperature,_TRANSFER_TIMEOUT_LENGTH,_visionUploadFile,_visionURL,_userPrompt,_EmbeddingInput,_EmbeddingModel"/>
#!     <XFORM_PARM PARM_NAME="TEST_STRING" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Unused"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="11"
#!   TYPE="OpenAPICaller"
#!   VERSION="0"
#!   POSITION="-5637.8803201841965 241.11322402045903"
#!   BOUNDING_RECT="-5637.8803201841965 241.11322402045903 655.015625 65"
#!   ORDER="500000000000012"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25208"
#! >
#!     <OUTPUT_FEAT NAME="Output"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="FileId" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_FileIdNoQuotes" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="message" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="UploadBody" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_delete_result" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_ATTR ATTR_NAME="FileId" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_FileIdNoQuotes" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="message" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="UploadBody" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_error" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_PARM PARM_NAME="ADVANCED_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ADVANCED_REQUEST_PARAMETERS" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="AUTH_METHOD" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AUTH_NAMED_CONNECTION" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AUTH_PASSWORD" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AUTH_USERNAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_FILE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_FROM_OS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_PASSWORD" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_PRIVATE_KEY_FILE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_TYPE" PARM_VALUE="NONE"/>
#!     <XFORM_PARM PARM_NAME="CONCURRENCY_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="CONNECTION_TIMEOUT_LENGTH" PARM_VALUE="@Value(_CONNECTION_TIMEOUT_LENGTH)"/>
#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS" PARM_VALUE="Authorization;Bearer&lt;space&gt;$(apiKey)"/>
#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ENDPOINT_SELECTOR_SETTINGS" PARM_VALUE="API_SOURCE,https:&lt;solidus&gt;&lt;solidus&gt;github.com&lt;solidus&gt;openai&lt;solidus&gt;openai-openapi&lt;solidus&gt;blob&lt;solidus&gt;master&lt;solidus&gt;openapi.yaml,ENDPOINT,&lt;solidus&gt;files&lt;comma&gt;&lt;solidus&gt;files&lt;solidus&gt;&lt;opencurly&gt;file_id&lt;closecurly&gt;&lt;comma&gt;DELETE,PREVIEW_HEADER_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_HEADER_TABLE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_PATH_GROUP,FME_DISCLOSURE_OPEN,PREVIEW_PATH_TABLE,file_id&lt;space&gt;String&lt;space&gt;&lt;quote&gt;The&lt;space&gt;ID&lt;space&gt;of&lt;space&gt;the&lt;space&gt;file&lt;space&gt;to&lt;space&gt;use&lt;space&gt;for&lt;space&gt;this&lt;space&gt;request.&lt;quote&gt;,PREVIEW_QUERY_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_QUERY_TABLE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_SAMPLE_RESPONSE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_SAMPLE_RESPONSE_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,STATUS_GROUP,FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ERROR_ATTR" PARM_VALUE="_error"/>
#!     <XFORM_PARM PARM_NAME="FILE_PATH_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="FILE_PATH_ATTR2" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="FILE_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="FOLLOW_REDIRECTS" PARM_VALUE="FOLLOW_WITH_GET"/>
#!     <XFORM_PARM PARM_NAME="FULL_URL" PARM_VALUE="https://api.openai.com/v1/files/{file_id}"/>
#!     <XFORM_PARM PARM_NAME="HOST" PARM_VALUE="https://api.openai.com/v1"/>
#!     <XFORM_PARM PARM_NAME="HOST_CHOICES" PARM_VALUE="https://api.openai.com/v1"/>
#!     <XFORM_PARM PARM_NAME="HTTPURL_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="HTTP_AUTH_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="HTTP_METHOD" PARM_VALUE="DELETE"/>
#!     <XFORM_PARM PARM_NAME="IMPORT_API_SPECS_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="IMPORT_SPEC_VALUES" PARM_VALUE="https://github.com/openai/openai-openapi/blob/master/openapi.yaml,/files/{file_id},DELETE,&quot;Delete a file.&quot;"/>
#!     <XFORM_PARM PARM_NAME="JSON_FRAGMENT_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="JSON_QUERY" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="LOOP_MESSAGE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="MAX_HTTP_VERSION" PARM_VALUE="HTTP_2"/>
#!     <XFORM_PARM PARM_NAME="MAX_TRANSFERS_IN_PROGRESS" PARM_VALUE="25"/>
#!     <XFORM_PARM PARM_NAME="MINIMUM_ENCRYPTION_LEVEL" PARM_VALUE="OS_DEFAULT"/>
#!     <XFORM_PARM PARM_NAME="MULTIPARTS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_CONTENT_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_RESPONSE_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_RESPONSE_HEADER_LIST_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_CONFIG_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_DIRNAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_FILENAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="PATH_VARIABLES" PARM_VALUE="file_id;&lt;at&gt;Value&lt;openparen&gt;_FileIdNoQuotes&lt;closeparen&gt;"/>
#!     <XFORM_PARM PARM_NAME="PATH_VARIABLES_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="QUERY_PARAMETERS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="QUERY_PARAMETERS_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_INTERVAL_IN_SECONDS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_MAX_REQUESTS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_REQUEST_TIMING" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="REDIRECT_AUTH" PARM_VALUE="ORIGINAL_DOMAIN_ONLY"/>
#!     <XFORM_PARM PARM_NAME="REQUEST_PREVIEW_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_ATTRS_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_ATTR_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_DIR_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_FILE_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_HANDLING_MODE" PARM_VALUE="save_response"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_HEADER_LIST_ATTR" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_TYPE" PARM_VALUE="Attribute"/>
#!     <XFORM_PARM PARM_NAME="RETRY_FAILED_TRANSFERS" PARM_VALUE="CONNECTION 429 500 501 502 503 504 505 506 507 508 509 510 511"/>
#!     <XFORM_PARM PARM_NAME="RETRY_GROUP" PARM_VALUE="YES"/>
#!     <XFORM_PARM PARM_NAME="RETRY_INITIAL_BACKOFF" PARM_VALUE="500"/>
#!     <XFORM_PARM PARM_NAME="RETRY_MAX_RETRIES" PARM_VALUE="$(RETRY_MAX_RETRIES)"/>
#!     <XFORM_PARM PARM_NAME="SAVE_ENTIRE_RESPONSE_BODY_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="SAVE_FILE_LOOKUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="SPLIT_MULTIPART_DOWNLOADS" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="STATUS_CODE_ATTR" PARM_VALUE="_http_status_code"/>
#!     <XFORM_PARM PARM_NAME="TARGET_ATTR" PARM_VALUE="_delete_result"/>
#!     <XFORM_PARM PARM_NAME="TARGET_ATTR_ENCODING" PARM_VALUE="auto-detect"/>
#!     <XFORM_PARM PARM_NAME="TARGET_URL" PARM_VALUE="https:&lt;solidus&gt;&lt;solidus&gt;api.openai.com&lt;solidus&gt;v1&lt;solidus&gt;files&lt;solidus&gt;&lt;at&gt;Value&lt;openparen&gt;_FileIdNoQuotes&lt;closeparen&gt;"/>
#!     <XFORM_PARM PARM_NAME="TEMP_JSON_FILEPATH" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_ATTRIBUTE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_REQUEST_PARAMETERS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_RESPONSE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_STATUS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_USER_PARAMETER" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TLS_CLIENT_CERTIFICATE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TLS_PARAMETERS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFER_TIMEOUT_LENGTH" PARM_VALUE="@Value(_TRANSFER_TIMEOUT_LENGTH)"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_BODY" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_CONTENT_TYPE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_FILE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_TYPE" PARM_VALUE="STRING_UPLOAD"/>
#!     <XFORM_PARM PARM_NAME="URL_BY_PARAMETERS_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="USE_COOKIES" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="USE_FRAGMENTER" PARM_VALUE="__DISABLED__"/>
#!     <XFORM_PARM PARM_NAME="VERIFY_SSL_CERTIFICATES" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="OpenAPICaller_DeleteFile"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="12"
#!   TYPE="AttributeManager"
#!   VERSION="5"
#!   POSITION="-5637.8803201841965 -228.8914546491194"
#!   BOUNDING_RECT="-5637.8803201841965 -228.8914546491194 436 65"
#!   ORDER="500000000000065"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25615"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="Response" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_GRP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_HANDLING" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ATTR_TABLE" PARM_VALUE="&quot;&quot; Response &lt;at&gt;Value&lt;openparen&gt;_response_body&lt;closeparen&gt; varchar&lt;openparen&gt;200&lt;closeparen&gt; SET_TO _Action _Action  buffer REMOVE _fileSearchUpload _fileSearchUpload  buffer REMOVE _visionUploadFile _visionUploadFile  buffer REMOVE _model _model  buffer REMOVE _instructions _instructions  buffer REMOVE _JSONSchema _JSONSchema  buffer REMOVE _temperature _temperature  buffer REMOVE _maxOutputTokens _maxOutputTokens  buffer REMOVE _TRANSFER_TIMEOUT_LENGTH _TRANSFER_TIMEOUT_LENGTH  buffer REMOVE _visionURL _visionURL  buffer REMOVE _userPrompt _userPrompt  buffer REMOVE _http_status_code _http_status_code  buffer REMOVE _response_body _response_body  buffer REMOVE _file_contents _file_contents  buffer REMOVE _delete_result _delete_result  buffer REMOVE message message  varchar&lt;openparen&gt;200&lt;closeparen&gt; REMOVE _user _user  buffer REMOVE UploadBody UploadBody  varchar&lt;openparen&gt;200&lt;closeparen&gt; REMOVE FileId FileId  buffer REMOVE _FileIdNoQuotes _FileIdNoQuotes  varchar&lt;openparen&gt;200&lt;closeparen&gt; REMOVE _effort _effort  buffer REMOVE _CONNECTION_TIMEOUT_LENGTH _CONNECTION_TIMEOUT_LENGTH  buffer REMOVE _RETRY_MAX_RETRIES _RETRY_MAX_RETRIES  buffer REMOVE _EmbeddingInput _EmbeddingInput  buffer REMOVE _EmbeddingModel _EmbeddingModel  buffer REMOVE _MCPTools _MCPTools  buffer REMOVE"/>
#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE" PARM_VALUE="NO_OP"/>
#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="USER_EXPOSED_ATTRIBUTES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="USER_MODIFIED_ATTRIBUTE_TYPES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeManager"/>
#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_IS_LOOKUP="true" PARM_VALUE="No Substitution"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="13"
#!   TYPE="JSONValidator"
#!   VERSION="4"
#!   POSITION="-10859.329988348944 969.11667405496064"
#!   BOUNDING_RECT="-10859.329988348944 969.11667405496064 431 71"
#!   ORDER="500000000000110.13"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25615"
#! >
#!     <OUTPUT_FEAT NAME="PASSED"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="FAILED"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_json_error{}.message" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_json_error{}.line" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_json_error{}.column" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_json_error{}.severity" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="JSON Error" IS_USER_CREATED="true" FEAT_INDEX="1" ATTR_IS_ENABLED="true" ATTR_VALUE="Invalid&lt;space&gt;JSON&lt;comma&gt;&lt;space&gt;review&lt;space&gt;the&lt;space&gt;_json_error&lt;space&gt;list&lt;space&gt;in&lt;space&gt;the&lt;space&gt;Feature&lt;space&gt;Information&lt;space&gt;Window&lt;space&gt;for&lt;space&gt;additional&lt;space&gt;information&lt;space&gt;about&lt;space&gt;the&lt;space&gt;reason&lt;space&gt;for&lt;space&gt;failure." ATTR_TYPE="varchar(200)" />
#!     <XFORM_PARM PARM_NAME="ERROR_LIST_ATTR" PARM_VALUE="_json_error"/>
#!     <XFORM_PARM PARM_NAME="FILEPATH_OR_URL" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="INPUT_SETTINGS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="JSON_DOCUMENT" PARM_VALUE="&lt;at&gt;Value&lt;openparen&gt;_JSONSchema&lt;closeparen&gt;"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="READ_FROM_FILE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="SCHEMA_ERROR_LIST_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SCHEMA_FILE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SCHEMA_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SUBSCHEMA_URI" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="VALIDATION_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="VALIDATION_TYPE" PARM_VALUE="SYNTAX"/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="JSONValidator"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="14"
#!   TYPE="Tester"
#!   VERSION="4"
#!   POSITION="-11465.399985386195 718.11667405496064"
#!   BOUNDING_RECT="-11465.399985386195 718.11667405496064 436 65"
#!   ORDER="500000000000114.13"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="24783"
#! >
#!     <OUTPUT_FEAT NAME="PASSED"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="FAILED"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_PARM PARM_NAME="ADVANCED_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
#!     <XFORM_PARM PARM_NAME="COMPOSITE_MSG" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="PRESERVE_FEATURE_ORDER" PARM_VALUE="PER_OUTPUT_PORT"/>
#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST _JSONSchema ATTRIBUTE_HAS_A_VALUE &quot;&quot;"/>
#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE_GRP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="TEST"/>
#!     <XFORM_PARM PARM_NAME="TEST_PREVIEW_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="15"
#!   TYPE="StringReplacer"
#!   VERSION="5"
#!   POSITION="-8690.1006840537138 448.61360297501824"
#!   BOUNDING_RECT="-8690.1006840537138 448.61360297501824 430 71"
#!   ORDER="500000000000031"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="24783"
#!   SHOW_BLANK_INPUT_FT="false"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="CASE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="FIND_TEXT" PARM_VALUE="&lt;backslash&gt;"/>
#!     <XFORM_PARM PARM_NAME="NO_MATCH" PARM_VALUE="_FME_NO_OP_"/>
#!     <XFORM_PARM PARM_NAME="NO_MATCH_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="REGEXP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="REPLACE_TEXT" PARM_VALUE="&lt;backslash&gt;&lt;backslash&gt;"/>
#!     <XFORM_PARM PARM_NAME="SRC_ATTRS" PARM_VALUE="_Action,_fileSearchUpload,_instructions,_maxOutputTokens,_model,_temperature,_TRANSFER_TIMEOUT_LENGTH,_userPrompt,_visionUploadFile,_visionURL"/>
#!     <XFORM_PARM PARM_NAME="TEST_STRING" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Backslash"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="16"
#!   TYPE="StringReplacer"
#!   VERSION="5"
#!   POSITION="-8690.1006840537138 260.61222296121764"
#!   BOUNDING_RECT="-8690.1006840537138 260.61222296121764 454 71"
#!   ORDER="500000000000031"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="24783"
#!   SHOW_BLANK_INPUT_FT="false"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="CASE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="FIND_TEXT" PARM_VALUE="&lt;quote&gt;"/>
#!     <XFORM_PARM PARM_NAME="NO_MATCH" PARM_VALUE="_FME_NO_OP_"/>
#!     <XFORM_PARM PARM_NAME="NO_MATCH_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="REGEXP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="REPLACE_TEXT" PARM_VALUE="&lt;backslash&gt;&lt;quote&gt;"/>
#!     <XFORM_PARM PARM_NAME="SRC_ATTRS" PARM_VALUE="_Action,_fileSearchUpload,_instructions,_maxOutputTokens,_model,_temperature,_TRANSFER_TIMEOUT_LENGTH,_userPrompt,_visionUploadFile,_visionURL"/>
#!     <XFORM_PARM PARM_NAME="TEST_STRING" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Quotes"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="17"
#!   TYPE="StringReplacer"
#!   VERSION="5"
#!   POSITION="-8690.1006840537138 72.610842947418632"
#!   BOUNDING_RECT="-8690.1006840537138 72.610842947418632 436 71"
#!   ORDER="500000000000031"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="24783"
#!   SHOW_BLANK_INPUT_FT="false"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="CASE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="FIND_TEXT" PARM_VALUE="&lt;backspace&gt;"/>
#!     <XFORM_PARM PARM_NAME="NO_MATCH" PARM_VALUE="_FME_NO_OP_"/>
#!     <XFORM_PARM PARM_NAME="NO_MATCH_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="REGEXP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="REPLACE_TEXT" PARM_VALUE="&lt;backslash&gt;b"/>
#!     <XFORM_PARM PARM_NAME="SRC_ATTRS" PARM_VALUE="_Action,_fileSearchUpload,_instructions,_maxOutputTokens,_model,_temperature,_TRANSFER_TIMEOUT_LENGTH,_userPrompt,_visionUploadFile,_visionURL"/>
#!     <XFORM_PARM PARM_NAME="TEST_STRING" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Backspace"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="18"
#!   TYPE="StringReplacer"
#!   VERSION="5"
#!   POSITION="-8081.0945939928142 448.61360297501824"
#!   BOUNDING_RECT="-8081.0945939928142 448.61360297501824 454 71"
#!   ORDER="500000000000031"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="24783"
#!   SHOW_BLANK_INPUT_FT="false"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="CASE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="FIND_TEXT" PARM_VALUE="&lt;tab&gt;"/>
#!     <XFORM_PARM PARM_NAME="NO_MATCH" PARM_VALUE="_FME_NO_OP_"/>
#!     <XFORM_PARM PARM_NAME="NO_MATCH_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="REGEXP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="REPLACE_TEXT" PARM_VALUE="&lt;backslash&gt;t"/>
#!     <XFORM_PARM PARM_NAME="SRC_ATTRS" PARM_VALUE="_Action,_fileSearchUpload,_instructions,_maxOutputTokens,_model,_temperature,_TRANSFER_TIMEOUT_LENGTH,_userPrompt,_visionUploadFile,_visionURL"/>
#!     <XFORM_PARM PARM_NAME="TEST_STRING" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tab"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="19"
#!   TYPE="StringReplacer"
#!   VERSION="5"
#!   POSITION="-8081.0945939928142 260.61222296121764"
#!   BOUNDING_RECT="-8081.0945939928142 260.61222296121764 430 71"
#!   ORDER="500000000000031"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="24783"
#!   SHOW_BLANK_INPUT_FT="false"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="CASE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="FIND_TEXT" PARM_VALUE="&lt;cr&gt;"/>
#!     <XFORM_PARM PARM_NAME="NO_MATCH" PARM_VALUE="_FME_NO_OP_"/>
#!     <XFORM_PARM PARM_NAME="NO_MATCH_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="REGEXP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="REPLACE_TEXT" PARM_VALUE="&lt;backslash&gt;r"/>
#!     <XFORM_PARM PARM_NAME="SRC_ATTRS" PARM_VALUE="_Action,_fileSearchUpload,_instructions,_maxOutputTokens,_model,_temperature,_TRANSFER_TIMEOUT_LENGTH,_userPrompt,_visionUploadFile,_visionURL"/>
#!     <XFORM_PARM PARM_NAME="TEST_STRING" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="CarriageReturn"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="20"
#!   TYPE="AttributeManager"
#!   VERSION="5"
#!   POSITION="-7458.557618623061 241.11322402045903"
#!   BOUNDING_RECT="-7458.557618623061 241.11322402045903 454 71"
#!   ORDER="500000000000055"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25615"
#!   SHOW_BLANK_INPUT_FT="false"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="FileId" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_FileIdNoQuotes" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="message" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="UploadBody" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_GRP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ATTRIBUTE_HANDLING" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="ATTR_TABLE" PARM_VALUE="_response_body FileId  buffer RENAME_SET_VALUE  _FileIdNoQuotes &lt;at&gt;Value&lt;openparen&gt;FileId&lt;closeparen&gt; varchar&lt;openparen&gt;200&lt;closeparen&gt; SET_TO _model _model  buffer NO_OP _temperature _temperature  buffer NO_OP  message  varchar&lt;openparen&gt;200&lt;closeparen&gt; SET_TO _TRANSFER_TIMEOUT_LENGTH _TRANSFER_TIMEOUT_LENGTH &quot;FME_CONDITIONAL:DEFAULT_VALUE&apos;360&apos;BOOL_OP;OR;COMPOSITE_TEST;1;TEST _TRANSFER_TIMEOUT_LENGTH ATTRIBUTE_HAS_A_VALUE _FME_BLANK_STRING_&apos;&lt;at&gt;Value&lt;openparen&gt;_TRANSFER_TIMEOUT_LENGTH&lt;closeparen&gt;&apos;FME_NUM_CONDITIONS2___&quot; buffer SET_TO _JSONSchema _JSONSchema &quot;FME_CONDITIONAL:DEFAULT_VALUE&apos;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;text&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;format&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;json_schema&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;name&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;StructuredResponse&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;schema&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_JSONSchema&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&apos;BOOL_OP;OR;COMPOSITE_TEST;1;TEST _JSONSchema ATTRIBUTE_IS_EMPTY _FME_BLANK_STRING_&apos;&apos;FME_NUM_CONDITIONS2___&quot; buffer SET_TO _Action _Action  buffer NO_OP _fileSearchUpload _fileSearchUpload  buffer NO_OP _visionUploadFile _visionUploadFile  buffer NO_OP _instructions _instructions  buffer NO_OP _maxOutputTokens _maxOutputTokens &quot;FME_CONDITIONAL:DEFAULT_VALUE&apos;null&apos;BOOL_OP;OR;COMPOSITE_TEST;1;TEST _maxOutputTokens ATTRIBUTE_HAS_A_VALUE _FME_BLANK_STRING_&apos;&lt;at&gt;Value&lt;openparen&gt;_maxOutputTokens&lt;closeparen&gt;&apos;FME_NUM_CONDITIONS2___&quot; buffer SET_TO _visionURL _visionURL  buffer NO_OP _userPrompt _userPrompt  buffer NO_OP _user _user  buffer NO_OP  UploadBody &quot;FME_CONDITIONAL:DEFAULT_VALUE&apos;_FME_NO_OP_&apos;BOOL_OP;OR;COMPOSITE_TEST;1;TEST &lt;at&gt;Value&lt;openparen&gt;_Action&lt;closeparen&gt; = Text&lt;space&gt;Generation&apos;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;model&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_model&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;temperature&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_temperature&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;user&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_user&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;max_output_tokens&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_maxOutputTokens&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;input&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;role&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;developer&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;content&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_text&lt;quote&gt;&lt;comma&gt;&lt;space&gt;&lt;quote&gt;text&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_instructions&lt;closeparen&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;role&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;user&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;content&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_text&lt;quote&gt;&lt;comma&gt;&lt;space&gt;&lt;quote&gt;text&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_userPrompt&lt;closeparen&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;closebracket&gt;&lt;at&gt;Value&lt;openparen&gt;_JSONSchema&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&apos;BOOL_OP;AND;COMPOSITE_TEST;1 AND 2;TEST &lt;at&gt;Value&lt;openparen&gt;_Action&lt;closeparen&gt; = Vision;TEST &lt;at&gt;Value&lt;openparen&gt;_visionURL&lt;closeparen&gt; != &lt;quote&gt;&lt;quote&gt;&apos;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;model&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_model&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;temperature&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_temperature&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;user&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_user&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;max_output_tokens&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_maxOutputTokens&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;input&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;role&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;developer&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;content&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_text&lt;quote&gt;&lt;comma&gt;&lt;space&gt;&lt;quote&gt;text&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_instructions&lt;closeparen&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;role&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;user&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;content&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_text&lt;quote&gt;&lt;comma&gt;&lt;space&gt;&lt;quote&gt;text&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_userPrompt&lt;closeparen&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_image&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;image_url&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_visionURL&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;at&gt;Value&lt;openparen&gt;_JSONSchema&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&apos;BOOL_OP;AND;COMPOSITE_TEST;1 AND 2;TEST &lt;at&gt;Value&lt;openparen&gt;_Action&lt;closeparen&gt; = Vision;TEST &lt;at&gt;Value&lt;openparen&gt;_visionUploadFile&lt;closeparen&gt; != &lt;quote&gt;&lt;quote&gt;&apos;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;model&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_model&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;temperature&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_temperature&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;user&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_user&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;max_output_tokens&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_maxOutputTokens&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;input&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;role&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;developer&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;content&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_text&lt;quote&gt;&lt;comma&gt;&lt;space&gt;&lt;quote&gt;text&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_instructions&lt;closeparen&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;role&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;user&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;content&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_text&lt;quote&gt;&lt;comma&gt;&lt;space&gt;&lt;quote&gt;text&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_userPrompt&lt;closeparen&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_image&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;image_url&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;data:image&lt;solidus&gt;jpeg&lt;semicolon&gt;base64&lt;comma&gt;&lt;at&gt;Value&lt;openparen&gt;_file_contents&lt;closeparen&gt;&lt;quote&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;at&gt;Value&lt;openparen&gt;_JSONSchema&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&apos;BOOL_OP;OR;COMPOSITE_TEST;1;TEST &lt;at&gt;Value&lt;openparen&gt;_Action&lt;closeparen&gt; = Web&lt;space&gt;Search&apos;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;model&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_model&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;temperature&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_temperature&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;user&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_user&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;max_output_tokens&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_maxOutputTokens&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;tools&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;opencurly&gt;&lt;space&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;web_search_preview&lt;quote&gt;&lt;space&gt;&lt;closecurly&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;input&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;role&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;developer&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;content&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_text&lt;quote&gt;&lt;comma&gt;&lt;space&gt;&lt;quote&gt;text&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_instructions&lt;closeparen&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;role&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;user&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;content&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_text&lt;quote&gt;&lt;comma&gt;&lt;space&gt;&lt;quote&gt;text&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_userPrompt&lt;closeparen&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;at&gt;Value&lt;openparen&gt;_JSONSchema&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&apos;BOOL_OP;OR;COMPOSITE_TEST;1;TEST &lt;at&gt;Value&lt;openparen&gt;_Action&lt;closeparen&gt; = File&lt;space&gt;Search&apos;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;model&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_model&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;temperature&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_temperature&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;user&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_user&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;max_output_tokens&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_maxOutputTokens&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;input&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;role&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;developer&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;content&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_text&lt;quote&gt;&lt;comma&gt;&lt;space&gt;&lt;quote&gt;text&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_instructions&lt;closeparen&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;role&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;user&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;content&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_text&lt;quote&gt;&lt;comma&gt;&lt;space&gt;&lt;quote&gt;text&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_userPrompt&lt;closeparen&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_file&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;file_id&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;FileId&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;at&gt;Value&lt;openparen&gt;_JSONSchema&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&apos;BOOL_OP;OR;COMPOSITE_TEST;1;TEST &lt;at&gt;Value&lt;openparen&gt;_Action&lt;closeparen&gt; = Reasoning&apos;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;model&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_model&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;temperature&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_temperature&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;user&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_user&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;max_output_tokens&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_maxOutputTokens&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;reasoning&lt;quote&gt;:&lt;space&gt;&lt;opencurly&gt;&lt;quote&gt;effort&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_effort&lt;closeparen&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;input&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;role&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;developer&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;content&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_text&lt;quote&gt;&lt;comma&gt;&lt;space&gt;&lt;quote&gt;text&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_instructions&lt;closeparen&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;role&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;user&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;content&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;opencurly&gt;&lt;quote&gt;type&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;input_text&lt;quote&gt;&lt;comma&gt;&lt;space&gt;&lt;quote&gt;text&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_userPrompt&lt;closeparen&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;at&gt;Value&lt;openparen&gt;_JSONSchema&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&apos;BOOL_OP;OR;COMPOSITE_TEST;1;TEST &lt;at&gt;Value&lt;openparen&gt;_Action&lt;closeparen&gt; = Remote&lt;space&gt;MCP&apos;&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;model&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_model&lt;closeparen&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;tools&lt;quote&gt;:&lt;space&gt;&lt;openbracket&gt;&lt;lf&gt;&lt;at&gt;Value&lt;openparen&gt;_MCPTools&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;closebracket&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;input&lt;quote&gt;:&lt;space&gt;&lt;at&gt;Value&lt;openparen&gt;_userPrompt&lt;closeparen&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;closecurly&gt;&apos;FME_NUM_CONDITIONS8___&quot; varchar&lt;openparen&gt;200&lt;closeparen&gt; SET_TO _file_contents _file_contents  buffer NO_OP _http_status_code _http_status_code  buffer NO_OP _effort _effort  buffer NO_OP _CONNECTION_TIMEOUT_LENGTH _CONNECTION_TIMEOUT_LENGTH  buffer NO_OP _RETRY_MAX_RETRIES _RETRY_MAX_RETRIES  buffer NO_OP _EmbeddingInput _EmbeddingInput  buffer NO_OP _EmbeddingModel _EmbeddingModel  buffer NO_OP _MCPTools _MCPTools  buffer NO_OP"/>
#!     <XFORM_PARM PARM_NAME="MULTI_FEATURE_MODE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE" PARM_VALUE="NO_OP"/>
#!     <XFORM_PARM PARM_NAME="NULL_ATTR_VALUE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="NUM_PRIOR_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="NUM_SUBSEQUENT_FEATURES" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="USER_EXPOSED_ATTRIBUTES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="USER_MODIFIED_ATTRIBUTE_TYPES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeManager_2"/>
#!     <XFORM_PARM PARM_NAME="NULL_ATTR_MODE_DISPLAY" PARM_IS_LOOKUP="true" PARM_VALUE="No Substitution"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="21"
#!   TYPE="StringConcatenator"
#!   VERSION="7"
#!   POSITION="-8081.0945939928142 72.610842947418632"
#!   BOUNDING_RECT="-8081.0945939928142 72.610842947418632 461.53125 65"
#!   ORDER="500000000000119.13"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="24783"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="ACTION" PARM_VALUE="Overwrite Existing Attributes"/>
#!     <XFORM_PARM PARM_NAME="ATTRLIST" PARM_VALUE="_fileSearchUpload _instructions _model _user _userPrompt _visionUploadFile _visionURL _response_body _effort"/>
#!     <XFORM_PARM PARM_NAME="PARAM_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARM_LINE" PARM_VALUE="fme_basicstring:1%19%1:&lt;quote&gt;&lt;at&gt;CurrentAttribute&lt;openparen&gt;&lt;closeparen&gt;&lt;quote&gt;"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="VAL_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="StringConcatenator"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="22"
#!   TYPE="TestFilter"
#!   VERSION="3"
#!   POSITION="-10314.116044207318 661.11664405466036"
#!   BOUNDING_RECT="-10314.116044207318 661.11664405466036 482.734375 65"
#!   ORDER="500000000000126.13"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25606"
#!   OUTPUT_FT_ORDER="EncodeImage%No&lt;space&gt;Action&lt;space&gt;Required%UploadFile%Embeddings"
#! >
#!     <OUTPUT_FEAT NAME="EncodeImage"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="No&lt;space&gt;Action&lt;space&gt;Required"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <OUTPUT_FEAT NAME="UploadFile"/>
#!     <FEAT_COLLAPSED COLLAPSED="2"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="2" />
#!     <OUTPUT_FEAT NAME="Embeddings"/>
#!     <FEAT_COLLAPSED COLLAPSED="3"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="3" />
#!     <XFORM_PARM PARM_NAME="ADVANCED_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="DEFAULT_VALUE" PARM_VALUE="No&lt;space&gt;Action&lt;space&gt;Required"/>
#!     <XFORM_PARM PARM_NAME="OUTGRPPORT" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_ATTRIBUTE_NAME" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PASSED_TEST_GROUP_OUTPUT" PARM_VALUE="FIRST"/>
#!     <XFORM_PARM PARM_NAME="PRESERVE_FEATURE_ORDER" PARM_VALUE="PER_OUTPUT_PORT"/>
#!     <XFORM_PARM PARM_NAME="TESTLISTGRP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_LIST" PARM_VALUE="&quot;BOOL_OP,AND,COMPOSITE_TEST,&quot;&quot;&quot;&quot;&quot;&quot;1 AND 2&quot;&quot;&quot;&quot;&quot;&quot;,TEST_CLAUSE,TEST&lt;space&gt;_visionUploadFile&lt;space&gt;ATTRIBUTE_HAS_A_VALUE&lt;space&gt;&lt;quote&gt;&lt;quote&gt;&lt;lf&gt;TEST&lt;space&gt;&lt;lt&gt;at&lt;gt&gt;Value&lt;lt&gt;openparen&lt;gt&gt;_Action&lt;lt&gt;closeparen&lt;gt&gt;&lt;space&gt;=&lt;space&gt;Vision&quot;,EncodeImage,&quot;BOOL_OP,AND,COMPOSITE_TEST,&quot;&quot;&quot;&quot;&quot;&quot;1 AND 2&quot;&quot;&quot;&quot;&quot;&quot;,TEST_CLAUSE,TEST&lt;space&gt;_fileSearchUpload&lt;space&gt;ATTRIBUTE_HAS_A_VALUE&lt;space&gt;&lt;quote&gt;&lt;quote&gt;&lt;lf&gt;TEST&lt;space&gt;&lt;lt&gt;at&lt;gt&gt;Value&lt;lt&gt;openparen&lt;gt&gt;_Action&lt;lt&gt;closeparen&lt;gt&gt;&lt;space&gt;=&lt;space&gt;File&lt;lt&gt;space&lt;gt&gt;Search&quot;,UploadFile,&quot;BOOL_OP,OR,COMPOSITE_TEST,&quot;&quot;&quot;&quot;&quot;&quot;1&quot;&quot;&quot;&quot;&quot;&quot;,TEST_CLAUSE,TEST&lt;space&gt;&lt;lt&gt;at&lt;gt&gt;Value&lt;lt&gt;openparen&lt;gt&gt;_Action&lt;lt&gt;closeparen&lt;gt&gt;&lt;space&gt;=&lt;space&gt;Embeddings&quot;,Embeddings"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="TestFilter"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="23"
#!   TYPE="Tester"
#!   VERSION="4"
#!   POSITION="-6254.3502564501014 241.11322402045903"
#!   BOUNDING_RECT="-6254.3502564501014 241.11322402045903 436 65"
#!   ORDER="500000000000127.13"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="24783"
#! >
#!     <OUTPUT_FEAT NAME="PASSED"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="FileId" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_FileIdNoQuotes" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="message" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="UploadBody" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="FAILED"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_ATTR ATTR_NAME="FileId" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_FileIdNoQuotes" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="message" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="UploadBody" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_PARM PARM_NAME="ADVANCED_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="BOOL_OP" PARM_VALUE="OR"/>
#!     <XFORM_PARM PARM_NAME="COMPOSITE_MSG" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="COMPOSITE_TEST" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="PRESERVE_FEATURE_ORDER" PARM_VALUE="PER_OUTPUT_PORT"/>
#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE" PARM_VALUE="TEST &lt;at&gt;Value&lt;openparen&gt;_Action&lt;closeparen&gt; = File&lt;space&gt;Search"/>
#!     <XFORM_PARM PARM_NAME="TEST_CLAUSE_GRP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_MODE" PARM_VALUE="TEST"/>
#!     <XFORM_PARM PARM_NAME="TEST_PREVIEW_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Tester_2"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="24"
#!   TYPE="StringReplacer"
#!   VERSION="5"
#!   POSITION="-8687.0949104754709 -112.6709936130124"
#!   BOUNDING_RECT="-8687.0949104754709 -112.6709936130124 436 65"
#!   ORDER="500000000000031"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="24783"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="CASE" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="FIND_TEXT" PARM_VALUE="&lt;lf&gt;"/>
#!     <XFORM_PARM PARM_NAME="NO_MATCH" PARM_VALUE="_FME_NO_OP_"/>
#!     <XFORM_PARM PARM_NAME="NO_MATCH_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="REGEXP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="REPLACE_TEXT" PARM_VALUE="&lt;backslash&gt;n"/>
#!     <XFORM_PARM PARM_NAME="SRC_ATTRS" PARM_VALUE="_Action,_fileSearchUpload,_instructions,_maxOutputTokens,_model,_temperature,_TRANSFER_TIMEOUT_LENGTH,_userPrompt,_visionUploadFile,_visionURL"/>
#!     <XFORM_PARM PARM_NAME="TEST_STRING" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="Newline"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="25"
#!   TYPE="AttributeTrimmer"
#!   VERSION="4"
#!   POSITION="-7464.5578586254605 20.612282961817655"
#!   BOUNDING_RECT="-7464.5578586254605 20.612282961817655 436 65"
#!   ORDER="500000000000140.13"
#!   PARMS_EDITED="false"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25208"
#! >
#!     <OUTPUT_FEAT NAME="OUTPUT"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="FileId" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_FileIdNoQuotes" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="message" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="UploadBody" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_file_contents" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_PARM PARM_NAME="PARAMETERS_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="SRC_ATTRS" PARM_VALUE="_FileIdNoQuotes"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRIM_CHARS" PARM_VALUE="&lt;quote&gt;"/>
#!     <XFORM_PARM PARM_NAME="TRIM_TO_NONE" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="TRIM_TYPE" PARM_VALUE="BOTH"/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="AttributeTrimmer"/>
#! </TRANSFORMER>
#! <TRANSFORMER
#!   IDENTIFIER="26"
#!   TYPE="OpenAPICaller"
#!   VERSION="0"
#!   POSITION="-9503.8822340567131 -552.60864606639859"
#!   BOUNDING_RECT="-9503.8822340567131 -552.60864606639859 783.78125 65"
#!   ORDER="500000000000012"
#!   PARMS_EDITED="true"
#!   ENABLED="true"
#!   LAST_PARM_EDIT="25606"
#! >
#!     <OUTPUT_FEAT NAME="Output"/>
#!     <FEAT_COLLAPSED COLLAPSED="0"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" IS_USER_CREATED="false" FEAT_INDEX="0" />
#!     <OUTPUT_FEAT NAME="&lt;REJECTED&gt;"/>
#!     <FEAT_COLLAPSED COLLAPSED="1"/>
#!     <XFORM_ATTR ATTR_NAME="_Action" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_fileSearchUpload" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionUploadFile" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_model" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_instructions" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_JSONSchema" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_temperature" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_maxOutputTokens" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_TRANSFER_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_visionURL" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_userPrompt" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_user" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_effort" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_CONNECTION_TIMEOUT_LENGTH" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_RETRY_MAX_RETRIES" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingInput" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_EmbeddingModel" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_MCPTools" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="_error" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" IS_USER_CREATED="false" FEAT_INDEX="1" />
#!     <XFORM_PARM PARM_NAME="ADVANCED_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="ADVANCED_REQUEST_PARAMETERS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="AUTH_METHOD" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AUTH_NAMED_CONNECTION" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AUTH_PASSWORD" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="AUTH_USERNAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_FILE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_FROM_OS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_PASSWORD" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_PRIVATE_KEY_FILE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="CLIENT_CERTIFICATE_TYPE" PARM_VALUE="NONE"/>
#!     <XFORM_PARM PARM_NAME="CONCURRENCY_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="CONNECTION_TIMEOUT_LENGTH" PARM_VALUE="60"/>
#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS" PARM_VALUE="Authorization;Bearer&lt;space&gt;$(apiKey)"/>
#!     <XFORM_PARM PARM_NAME="CUSTOM_HEADERS_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ENDPOINT_SELECTOR_SETTINGS" PARM_VALUE="API_SOURCE,https:&lt;solidus&gt;&lt;solidus&gt;github.com&lt;solidus&gt;openai&lt;solidus&gt;openai-openapi&lt;solidus&gt;blob&lt;solidus&gt;master&lt;solidus&gt;openapi.yaml,ENDPOINT,&lt;solidus&gt;files&lt;comma&gt;POST,PREVIEW_HEADER_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_HEADER_TABLE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_PATH_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_PATH_TABLE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_QUERY_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_QUERY_TABLE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_SAMPLE_RESPONSE,&lt;lt&gt;Unused&lt;gt&gt;,PREVIEW_SAMPLE_RESPONSE_GROUP,&lt;lt&gt;Unused&lt;gt&gt;,STATUS_GROUP,FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="ERROR_ATTR" PARM_VALUE="_error"/>
#!     <XFORM_PARM PARM_NAME="FILE_PATH_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="FILE_PATH_ATTR2" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="FILE_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="FOLLOW_REDIRECTS" PARM_VALUE="FOLLOW_WITH_GET"/>
#!     <XFORM_PARM PARM_NAME="FULL_URL" PARM_VALUE="https://api.openai.com/v1/embeddings"/>
#!     <XFORM_PARM PARM_NAME="HOST" PARM_VALUE="https://api.openai.com/v1/embeddings"/>
#!     <XFORM_PARM PARM_NAME="HOST_CHOICES" PARM_VALUE="https://api.openai.com/v1"/>
#!     <XFORM_PARM PARM_NAME="HTTPURL_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="HTTP_AUTH_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="HTTP_METHOD" PARM_VALUE="POST"/>
#!     <XFORM_PARM PARM_NAME="IMPORT_API_SPECS_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="IMPORT_SPEC_VALUES" PARM_VALUE="https://github.com/openai/openai-openapi/blob/master/openapi.yaml,/files,POST,&quot;Upload a file that can be used across various endpoints. Individual files can be up to 512 MB, and the size of all files uploaded by one organization can be up to 100 GB.&#10;&#10;The Assistants API supports files up to 2 million tokens and of specific file types. See the [Assistants Tools guide](/docs/assistants/tools) for details.&#10;&#10;The Fine-tuning API only supports `.jsonl` files. The input also has certain required formats for fine-tuning [chat](/docs/api-reference/fine-tuning/chat-input) or [completions](/docs/api-reference/fine-tuning/completions-input) models.&#10;&#10;The Batch API only supports `.jsonl` files up to 200 MB in size. The input also has a specific required [format](/docs/api-reference/batch/request-input).&#10;&#10;Please [contact us](https://help.openai.com/) if you need to increase these storage limits.&#10;&quot;"/>
#!     <XFORM_PARM PARM_NAME="JSON_FRAGMENT_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="JSON_QUERY" PARM_VALUE="json&lt;openbracket&gt;&lt;quote&gt;data&lt;quote&gt;&lt;closebracket&gt;"/>
#!     <XFORM_PARM PARM_NAME="LOOP_MESSAGE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="MAX_HTTP_VERSION" PARM_VALUE="HTTP_2"/>
#!     <XFORM_PARM PARM_NAME="MAX_TRANSFERS_IN_PROGRESS" PARM_VALUE="25"/>
#!     <XFORM_PARM PARM_NAME="MINIMUM_ENCRYPTION_LEVEL" PARM_VALUE="OS_DEFAULT"/>
#!     <XFORM_PARM PARM_NAME="MULTIPARTS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_CONTENT_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_RESPONSE_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="MULTIPART_RESPONSE_HEADER_LIST_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_CONFIG_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_DIRNAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="OUTPUT_FILENAME" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="PATH_VARIABLES" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="PATH_VARIABLES_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="QUERY_PARAMETERS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="QUERY_PARAMETERS_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_INTERVAL_IN_SECONDS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_MAX_REQUESTS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RATE_LIMIT_REQUEST_TIMING" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="REDIRECT_AUTH" PARM_VALUE="ORIGINAL_DOMAIN_ONLY"/>
#!     <XFORM_PARM PARM_NAME="REQUEST_PREVIEW_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_ATTRS_GROUP" PARM_VALUE="FME_DISCLOSURE_CLOSED"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_ATTR_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_DIR_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_FILE_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_HANDLING_MODE" PARM_VALUE="json_fragments"/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_HEADER_LIST_ATTR" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="RESPONSE_TYPE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RETRY_FAILED_TRANSFERS" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RETRY_GROUP" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="RETRY_INITIAL_BACKOFF" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="RETRY_MAX_RETRIES" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SAVE_ENTIRE_RESPONSE_BODY_GROUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SAVE_FILE_LOOKUP" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="SPLIT_MULTIPART_DOWNLOADS" PARM_VALUE="NO"/>
#!     <XFORM_PARM PARM_NAME="STATUS_CODE_ATTR" PARM_VALUE="_http_status_code"/>
#!     <XFORM_PARM PARM_NAME="TARGET_ATTR" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TARGET_ATTR_ENCODING" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TARGET_URL" PARM_VALUE="https:&lt;solidus&gt;&lt;solidus&gt;api.openai.com&lt;solidus&gt;v1&lt;solidus&gt;embeddings"/>
#!     <XFORM_PARM PARM_NAME="TEMP_JSON_FILEPATH" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_ATTRIBUTE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_REQUEST_PARAMETERS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_RESPONSE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_STATUS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TEST_REQUEST_USER_PARAMETER" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TLS_CLIENT_CERTIFICATE" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TLS_PARAMETERS" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="TRANSFER_TIMEOUT_LENGTH" PARM_VALUE="90"/>
#!     <XFORM_PARM PARM_NAME="TRANSFORMER_GROUP" PARM_VALUE=""/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_BODY" PARM_VALUE="&lt;opencurly&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;model&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;&lt;at&gt;Value&lt;openparen&gt;_EmbeddingModel&lt;closeparen&gt;&lt;quote&gt;&lt;comma&gt;&lt;lf&gt;&lt;space&gt;&lt;space&gt;&lt;quote&gt;input&lt;quote&gt;:&lt;space&gt;&lt;quote&gt;&lt;at&gt;Value&lt;openparen&gt;_EmbeddingInput&lt;closeparen&gt;&lt;quote&gt;&lt;lf&gt;&lt;closecurly&gt;"/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_CONTENT_TYPE" PARM_VALUE="application/json"/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_FILE" PARM_VALUE="&lt;Unused&gt;"/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="UPLOAD_TYPE" PARM_VALUE="STRING_UPLOAD"/>
#!     <XFORM_PARM PARM_NAME="URL_BY_PARAMETERS_GROUP" PARM_VALUE="FME_DISCLOSURE_OPEN"/>
#!     <XFORM_PARM PARM_NAME="USE_COOKIES" PARM_VALUE="No"/>
#!     <XFORM_PARM PARM_NAME="USE_FRAGMENTER" PARM_VALUE="*"/>
#!     <XFORM_PARM PARM_NAME="VERIFY_SSL_CERTIFICATES" PARM_VALUE="Yes"/>
#!     <XFORM_PARM PARM_NAME="XFORMER_NAME" PARM_VALUE="OpenAPICaller_CreateEmbedding"/>
#! </TRANSFORMER>
#! </TRANSFORMERS>
#! <SUBDOCUMENT_IOS>
#! <SUBDOCUMENT_IO
#!   IDENTIFIER="2"
#!   NAME="Input"
#!   POSITION="-13175.792978335279 718.11667405496064"
#!   BOUNDING_RECT="-13175.792978335279 718.11667405496064 436 65"
#!   COLLAPSED="true"
#!   PUBLISHED="true"
#!   IS_SOURCE="true"
#!   ATTR_MODE="0"
#! >
#! </SUBDOCUMENT_IO>
#! <SUBDOCUMENT_IO
#!   IDENTIFIER="3"
#!   NAME="Output"
#!   POSITION="-4977.1002134679547 -228.89145464911942"
#!   BOUNDING_RECT="-4977.1002134679547 -228.89145464911942 431 71"
#!   COLLAPSED="false"
#!   IS_SOURCE="false"
#!   ATTR_MODE="0"
#! >
#! </SUBDOCUMENT_IO>
#! <SUBDOCUMENT_IO
#!   IDENTIFIER="4"
#!   NAME="Rejected"
#!   POSITION="-5637.8803201841965 -554.8928646632196"
#!   BOUNDING_RECT="-5637.8803201841965 -554.8928646632196 436 65"
#!   COLLAPSED="true"
#!   IS_SOURCE="false"
#!   ATTR_MODE="1"
#! >
#!     <XFORM_ATTR ATTR_NAME="_error" ATTR_TYPE="buffer" />
#!     <XFORM_ATTR ATTR_NAME="_http_status_code" ATTR_TYPE="buffer" />
#!     <XFORM_ATTR ATTR_NAME="_json_error{}.column" ATTR_TYPE="uint32" />
#!     <XFORM_ATTR ATTR_NAME="_json_error{}.line" ATTR_TYPE="uint32" />
#!     <XFORM_ATTR ATTR_NAME="_json_error{}.message" ATTR_TYPE="buffer" />
#!     <XFORM_ATTR ATTR_NAME="_json_error{}.severity" ATTR_TYPE="buffer" />
#!     <XFORM_ATTR ATTR_NAME="_response_body" ATTR_TYPE="buffer" />
#!     <XFORM_ATTR ATTR_NAME="fme_rejection_code" ATTR_TYPE="buffer" />
#!     <XFORM_ATTR ATTR_NAME="JSON Error" ATTR_TYPE="varchar(200)" />
#! </SUBDOCUMENT_IO>
#! </SUBDOCUMENT_IOS>
#! <FEAT_LINKS>
#! <FEAT_LINK
#!   IDENTIFIER="27"
#!   SOURCE_NODE="2"
#!   TARGET_NODE="7"
#!   SOURCE_PORT_DESC="0"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="28"
#!   SOURCE_NODE="5"
#!   TARGET_NODE="15"
#!   SOURCE_PORT_DESC="fo 0 Output"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="29"
#!   SOURCE_NODE="6"
#!   TARGET_NODE="23"
#!   SOURCE_PORT_DESC="fo 0 Output"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="30"
#!   SOURCE_NODE="7"
#!   TARGET_NODE="10"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="31"
#!   SOURCE_NODE="8"
#!   TARGET_NODE="9"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="32"
#!   SOURCE_NODE="9"
#!   TARGET_NODE="15"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="33"
#!   SOURCE_NODE="10"
#!   TARGET_NODE="14"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="34"
#!   SOURCE_NODE="11"
#!   TARGET_NODE="12"
#!   SOURCE_PORT_DESC="fo 0 Output"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="35"
#!   SOURCE_NODE="12"
#!   TARGET_NODE="3"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="0"
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="36"
#!   SOURCE_NODE="13"
#!   TARGET_NODE="22"
#!   SOURCE_PORT_DESC="fo 0 PASSED"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="37"
#!   SOURCE_NODE="14"
#!   TARGET_NODE="13"
#!   SOURCE_PORT_DESC="fo 0 PASSED"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="38"
#!   SOURCE_NODE="15"
#!   TARGET_NODE="16"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="39"
#!   SOURCE_NODE="16"
#!   TARGET_NODE="17"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="40"
#!   SOURCE_NODE="17"
#!   TARGET_NODE="24"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="41"
#!   SOURCE_NODE="18"
#!   TARGET_NODE="19"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="42"
#!   SOURCE_NODE="19"
#!   TARGET_NODE="21"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="43"
#!   SOURCE_NODE="20"
#!   TARGET_NODE="25"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="44"
#!   SOURCE_NODE="21"
#!   TARGET_NODE="20"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="45"
#!   SOURCE_NODE="22"
#!   TARGET_NODE="8"
#!   SOURCE_PORT_DESC="fo 0 EncodeImage"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="46"
#!   SOURCE_NODE="23"
#!   TARGET_NODE="11"
#!   SOURCE_PORT_DESC="fo 0 PASSED"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="47"
#!   SOURCE_NODE="24"
#!   TARGET_NODE="18"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="48"
#!   SOURCE_NODE="25"
#!   TARGET_NODE="6"
#!   SOURCE_PORT_DESC="fo 0 OUTPUT"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="49"
#!   SOURCE_NODE="26"
#!   TARGET_NODE="23"
#!   SOURCE_PORT_DESC="fo 0 Output"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS="-7755 -574"
#! />
#! <FEAT_LINK
#!   IDENTIFIER="50"
#!   SOURCE_NODE="5"
#!   TARGET_NODE="4"
#!   SOURCE_PORT_DESC="fo 1 &lt;lt&gt;REJECTED&lt;gt&gt;"
#!   TARGET_PORT_DESC="0"
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="true"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="51"
#!   SOURCE_NODE="6"
#!   TARGET_NODE="4"
#!   SOURCE_PORT_DESC="fo 1 &lt;lt&gt;REJECTED&lt;gt&gt;"
#!   TARGET_PORT_DESC="0"
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="true"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="52"
#!   SOURCE_NODE="11"
#!   TARGET_NODE="4"
#!   SOURCE_PORT_DESC="fo 1 &lt;lt&gt;REJECTED&lt;gt&gt;"
#!   TARGET_PORT_DESC="0"
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="true"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="53"
#!   SOURCE_NODE="13"
#!   TARGET_NODE="4"
#!   SOURCE_PORT_DESC="fo 1 FAILED"
#!   TARGET_PORT_DESC="0"
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="true"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="54"
#!   SOURCE_NODE="14"
#!   TARGET_NODE="22"
#!   SOURCE_PORT_DESC="fo 1 FAILED"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="55"
#!   SOURCE_NODE="22"
#!   TARGET_NODE="5"
#!   SOURCE_PORT_DESC="fo 2 UploadFile"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="56"
#!   SOURCE_NODE="23"
#!   TARGET_NODE="12"
#!   SOURCE_PORT_DESC="fo 1 FAILED"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="57"
#!   SOURCE_NODE="22"
#!   TARGET_NODE="26"
#!   SOURCE_PORT_DESC="fo 3 Embeddings"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! <FEAT_LINK
#!   IDENTIFIER="58"
#!   SOURCE_NODE="22"
#!   TARGET_NODE="15"
#!   SOURCE_PORT_DESC="fo 1 No&lt;lt&gt;space&lt;gt&gt;Action&lt;lt&gt;space&lt;gt&gt;Required"
#!   TARGET_PORT_DESC="fi 0 "
#!   ENABLED="true"
#!   EXECUTION_IDX="0"
#!   HIDDEN="false"
#!   COLOUR="0.050980392156862744,0.050980392156862744,0.047058823529411764,1"
#!   PEN_WIDTH="4"
#!   PEN_STYLE="1"
#!   LINK_STYLE_NAME="&lt;Default&gt;"
#!   EXTRA_POINTS=""
#! />
#! </FEAT_LINKS>
#! <BREAKPOINTS>
#! </BREAKPOINTS>
#! <ATTR_LINKS>
#! </ATTR_LINKS>
#! </SUBDOCUMENT>
#! </SUBDOCUMENTS>
#! <LOOKUP_TABLES>
#! </LOOKUP_TABLES>
#! </WORKSPACE>

FME_PYTHON_VERSION 313
ARCGIS_COMPATIBILITY ARCGIS_AUTO
GUI IGNORE SourceDataset_GENERIC_1,GENERIC_IN_FME_GROUP_NAMED1_GENERIC_1,GENERIC_IN_REAL_FORMAT_GENERIC_1,GENERIC_IN_SPATIAL_GROUP_GENERIC_1,GENERIC_IN_COORDINATE_SYSTEM_GENERIC_1,GENERIC_IN_NETWORK_AUTHENTICATION_GENERIC_1
# ============================================================================
DEFAULT_MACRO SourceDataset_GENERIC G:\My Drive\Customer Solutions\Knowledge Base\Agentic Schema Mapping\Part 1 - Agentic Schema Mapping\GenericSampleDatasets (1)\SpatialExample1.geojson

DEFAULT_MACRO Mapped_Output G:\My Drive\Customer Solutions\Knowledge Base\Agentic Schema Mapping\Run Through

DEFAULT_MACRO LUT_Output G:\My Drive\Customer Solutions\Knowledge Base\Agentic Schema Mapping\Run Through

DEFAULT_MACRO LUTPATH $(LUT_Output)/lookuptable.csv

# ============================================================================
INCLUDE [ if {{$(SourceDataset_GENERIC$encode)} == {}} { puts_real {Parameter 'SourceDataset_GENERIC' must be given a value.}; exit 1; }; ]
INCLUDE [ if {{$(Mapped_Output$encode)} == {}} { puts_real {Parameter 'Mapped_Output' must be given a value.}; exit 1; }; ]
INCLUDE [ if {{$(LUT_Output$encode)} == {}} { puts_real {Parameter 'LUT_Output' must be given a value.}; exit 1; }; ]
INCLUDE [ if {{$(LUTPATH$encode)} == {}} { puts_real {Parameter 'LUTPATH' must be given a value.}; exit 1; }; ]
#! START_HEADER
#! START_WB_HEADER
READER_TYPE MULTI_READER
MULTI_READER_TYPE{0} GENERIC
MULTI_READER_KEYWORD{0} GENERIC_1
MULTI_READER_GEN_DIRECTIVES{0} _MERGE_SCHEMAS,YES,COORDINATE_SYSTEM,,REAL_FORMAT,GUESS_FROM_EXTENSION,SPATIAL_GROUP,,EXPOSE_ATTRS_GROUP,,GENERIC_EXPOSE_FORMAT_ATTRS,,DYNAMIC_WORKFLOW,yes
WRITER_TYPE MULTI_WRITER
WRITER_KEYWORD MULTI_DEST
MULTI_DEST_DATASET null
#! END_WB_HEADER
#! START_WB_HEADER
MACRO WB_KEYWORD "GENERIC_1"
#! END_WB_HEADER
#! START_SOURCE_HEADER GENERIC GENERIC_1
GENERIC_1_DYNAMIC_WORKFLOW YES
# The dataset this mapping file was generated from was:
#! END_SOURCE_HEADER
#! START_WB_HEADER
DEFAULT_MACRO SourceDataset
INCLUDE [ if {{$(SourceDataset)} != ""} {                        \
 puts {DEFAULT_MACRO SourceDataset_GENERIC_1 $(SourceDataset)}     \
 } ]
#! END_WB_HEADER
#! START_SOURCE_HEADER GENERIC GENERIC_1
DEFAULT_MACRO SourceDataset_GENERIC_1 $(SourceDataset_GENERIC)
GUI FILE_OR_URL SourceDataset_GENERIC_1 All_files|* Source Dataset:
GENERIC_1_EXTENSION
DEFAULT_MACRO GENERIC_IN_FME_GROUP_NAMED1_GENERIC_1 
GUI OPTIONAL DISCLOSUREGROUP GENERIC_IN_FME_GROUP_NAMED1_GENERIC_1 GENERIC_IN_REAL_FORMAT_GENERIC_1 Input
DEFAULT_MACRO GENERIC_IN_REAL_FORMAT_GENERIC_1 GUESS_FROM_EXTENSION
GENERIC_1_REAL_FORMAT "$(GENERIC_IN_REAL_FORMAT_GENERIC_1)"
GUI READERPICK GENERIC_IN_REAL_FORMAT_GENERIC_1 Input Format:
DEFAULT_MACRO GENERIC_IN_EXPOSE_ATTRS_GROUP_GENERIC_1 
GENERIC_1_EXPOSE_ATTRS_GROUP "$(GENERIC_IN_EXPOSE_ATTRS_GROUP_GENERIC_1)"
DEFAULT_MACRO GENERIC_IN_SPATIAL_GROUP_GENERIC_1 
GUI OPTIONAL DISCLOSUREGROUP GENERIC_IN_SPATIAL_GROUP_GENERIC_1 GENERIC_IN_COORDINATE_SYSTEM_GENERIC_1 Spatial
DEFAULT_MACRO GENERIC_IN_COORDINATE_SYSTEM_GENERIC_1 
GENERIC_1_COORDINATE_SYSTEM "$(GENERIC_IN_COORDINATE_SYSTEM_GENERIC_1)"
GUI OPTIONAL COORDSYS GENERIC_IN_COORDINATE_SYSTEM_GENERIC_1 Coordinate System:
# ===========================================================================
DEFAULT_MACRO GENERIC_IN_NETWORK_AUTHENTICATION_GENERIC_1 
GENERIC_1_NETWORK_AUTHENTICATION "$(GENERIC_IN_NETWORK_AUTHENTICATION_GENERIC_1)"
GUI OPTIONAL AUTHENTICATOR GENERIC_IN_NETWORK_AUTHENTICATION_GENERIC_1 CONTAINER%GROUP%CONTAINER_TITLE%"Network Authentication"%PROMPT_TYPE%NETWORK Network Authentication
# ============================================================================
DEFAULT_MACRO GENERIC_IN_ATTRIBUTE_READING_GENERIC_1 ALL
GENERIC_1_ATTRIBUTE_READING "$(GENERIC_IN_ATTRIBUTE_READING_GENERIC_1)"
# ============================================================================
GENERIC_1_GENERATE_FME_BUILD_NUM 25810
GENERIC_1_DATASET "$(SourceDataset_GENERIC_1)"
#! END_SOURCE_HEADER
#! START_WB_HEADER
#! END_WB_HEADER
#! END_HEADER

LOG_FILENAME "$(FME_MF_DIR)$(WORKSPACE_NAME).log"
LOG_APPEND NO
LOG_TIMINGS YES
LOG_MAX_FEATURES 200
LOG_MAX_RECORDED_FEATURES 200
FME_REPROJECTION_ENGINE FME
FME_IMPLICIT_CSMAP_REPROJECTION_MODE Auto
FME_GEOMETRY_HANDLING Enhanced
FME_STROKE_MAX_DEVIATION 0
FME_NAMES_ENCODING UTF-8
FME_BULK_MODE_THRESHOLD 2000
LAST_SAVE_BUILD "FME 2025.2.0.0 (20251120 - Build 25810 - WIN64)"
DEFAULT_MACRO DATASET_KEYWORD_GENERIC_1 GENERIC_1
FME_PASSWORD_PARAMETER_LIST sample_password_parameter
# -------------------------------------------------------------------------

GENERIC_1_READER_META_ATTRIBUTES fme_feature_type

# -------------------------------------------------------------------------

MULTI_READER_CONTINUE_ON_READER_FAILURE No

# -------------------------------------------------------------------------

MACRO FME_VIEWER_APP fmedatainspector
# -------------------------------------------------------------------------
GENERIC_1_DEF NewFeatureType   fme_type                     fme_any
# -------------------------------------------------------------------------

FACTORY_DEF * RoutingFactory   FACTORY_NAME "Router and Unexpected Input Remover"   COMMAND_PARM_EVALUATION SINGLE_PASS   MULTI_READER_KEYWORD $(DATASET_KEYWORD_GENERIC_1)   INPUT FEATURE_TYPE *    ROUTE GENERIC GENERIC_1::NewFeatureType multi_reader_keyword,$(DATASET_KEYWORD_GENERIC_1) TO FME_GENERIC ::NewFeatureType ALIAS_GEOMETRY    MERGE_INPUT Yes   OUTPUT ROUTED FEATURE_TYPE *
GENERIC_1_MERGE_DEF GENERIC_1::NewFeatureType GLOB *
# -------------------------------------------------------------------------

FACTORY_DEF * TeeFactory    FACTORY_NAME "NewFeatureType_GENERIC_1 Splitter"    INPUT FEATURE_TYPE NewFeatureType    OUTPUT FEATURE_TYPE NewFeatureType_GENERIC_1
DEFAULT_MACRO WB_CURRENT_CONTEXT
# -------------------------------------------------------------------------
# If we're doing LAST N features, then the multiplier comes in as 0.
# If we're doing First N, multiplier is -1.
# For RANDOM, we need to treat LAST N as if it was first N (i.e. have a -1)
# That is what the ? : does in the rate multiplier.
INCLUDE [ if { {-1} == {0} && {ORIGINAL} == {ORIGINAL} } {              puts "MACRO REAL_MODE LAST"; 	         puts "MACRO REAL_RATE 5"; 	      } else {              puts "MACRO REAL_MODE ORIGINAL";              puts "MACRO REAL_RATE [expr 5 * ( -1 ? -1 : -1 ) ]"; 	      } ]
FACTORY_DEF {*} SamplingFactory    FACTORY_NAME { Sampler }    COMMAND_PARM_EVALUATION SINGLE_PASS    SAMPLE_RATE { $(REAL_RATE) }    SAMPLE_ORDER { $(REAL_MODE) }    FLUSH_WHEN_GROUPS_CHANGE { <Unused> }    INPUT  FEATURE_TYPE NewFeatureType_GENERIC_1    OUTPUT { SAMPLED FEATURE_TYPE ___SAMPLED___ }
# This TeeFactory is needed because Sampler will still output features if it has no OUTPUT clauses specified.
# This way we behave nicely even if there are no output connections on the transformer. See PR#28886.
FACTORY_DEF {*} TeeFactory    FACTORY_NAME { Sampler_Sampled }    INPUT FEATURE_TYPE ___SAMPLED___    OUTPUT { FEATURE_TYPE Sampler_SAMPLED          }
# -------------------------------------------------------------------------
FACTORY_DEF {*} CounterFactory    FACTORY_NAME { Counter }    FLUSH_WHEN_GROUPS_CHANGE { <Unused> }    START { "0" }    SCOPE { Global }    DOMAIN { "counter" }    COUNT_ATTR { "tid" }    GROUP_ID_ATTR { "" }    INPUT  FEATURE_TYPE Sampler_SAMPLED    OUTPUT { OUTPUT FEATURE_TYPE Counter_OUTPUT        }    OUTPUT { REJECTED FEATURE_TYPE Counter_<REJECTED>        }
# -------------------------------------------------------------------------
FACTORY_DEF {*} AttributeFactory    FACTORY_NAME { AttributeExploder }    INPUT  FEATURE_TYPE Counter_OUTPUT    ATTR_NAME_LABEL { "_attr_name" }    ATTR_VALUE_LABEL { "_attr_value" }    KEEP_GEOMETRY { No }    KEEP_ATTRIBUTES { Yes }    IGNORE_ATTRIBUTES_CONTAINING_REGEX { tid<pipe>^multi_<pipe>^fme_<pipe>^shapefile<pipe>^csv<pipe>^json }    IGNORE_ATTRIBUTES_CASE_SENSITIVE { No }    EXPLODING_TYPE { EXPLODE_AS_FEATURES }    LIST_NAME { "<Unused>" }    COMMAND_PARM_EVALUATION SINGLE_PASS    OUTPUT { EXPLODED FEATURE_TYPE AttributeExploder_OUTPUT        }
# -------------------------------------------------------------------------
DEFAULT_MACRO StringConcatenator_352ec603_0e58_46f0_be0f_283b41f1fa4f0_ATTRS_TO_EVALUATE
INCLUDE [    if {{OUTGOING} == {OUTGOING}} {       if {[string length {SampleValues}] == 0} { return; };       set attrs [list {SampleValues}];    } else {       set attrs [split {<Unused>} { }];    };    set clauses {};    foreach attr $attrs {       lappend clauses "ATTR";       lappend clauses "{";       lappend clauses $attr;       lappend clauses {"<at>Value<openparen>_attr_name<closeparen>:<at>Value<openparen>_attr_value<closeparen>"};       lappend clauses "}";    };    puts "MACRO StringConcatenator_352ec603_0e58_46f0_be0f_283b41f1fa4f0_ATTRS_TO_EVALUATE [join $clauses { }]"; ]
FACTORY_DEF {*} AttrSetFactory    FACTORY_NAME { StringConcatenator }    INPUT  FEATURE_TYPE AttributeExploder_OUTPUT    ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV    $(StringConcatenator_352ec603_0e58_46f0_be0f_283b41f1fa4f0_ATTRS_TO_EVALUATE)    OUTPUT { OUTPUT FEATURE_TYPE StringConcatenator_OUTPUT        }
# -------------------------------------------------------------------------
FACTORY_DEF {*} AggregateFactory    FACTORY_NAME { Aggregator }    INPUT  FEATURE_TYPE StringConcatenator_OUTPUT    MODE { ONE_LEVEL }    GROUP_BY { tid }    FLUSH_WHEN_GROUPS_CHANGE { No }    REMOVE_GEOMETRY { NO }    ACCUMULATE_ATTRIBUTES { All }    LIST_ATTRS_TO_INCLUDE { <Unused> }    LIST_ATTRS_TO_INCLUDE_MODE { <Unused> }    CONCATENATE_FIELDS { SampleValues }    SEPARATOR { <lf> }    PRODUCE_MULTIS { YES }    ALL_ATTRS_LIST_GROUP_BY_MODE ADD    OUTPUT { AGGREGATE FEATURE_TYPE Aggregator_AGGREGATE          }
# -------------------------------------------------------------------------
FACTORY_DEF {*} AttrSetFactory    COMMAND_PARM_EVALUATION SINGLE_PASS    FACTORY_NAME { AttributeManager }    INPUT  FEATURE_TYPE Aggregator_AGGREGATE    MULTI_FEATURE_MODE { NO }    NULL_ATTR_MODE { NO_OP }    ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV    ACTION_COLUMN 4    DEF_VAL_COLUMN 2    NUM_OF_COLUMNS 5    MISSING_INPUT_ATTR_HANDLING RENAME_SET_VALUE REMOVE    ATTR_ACTION { "tid" "tid" "" "int64" "REMOVE" }      ATTR_ACTION { "SampleValues" "SampleValues" "--Start<space>Sample<space>Feature<space><at>Count<openparen><closeparen>--<lf><at>Value<openparen>SampleValues<closeparen><lf>--End<space>Sample<space>Feature--" "buffer" "SET_TO" }      ATTR_ACTION { "fme_feature_type" "fme_feature_type" "" "char<openparen>50<closeparen>" "REMOVE" }      ATTR_ACTION { "_attr_name" "_attr_name" "" "buffer" "REMOVE" }      ATTR_ACTION { "_attr_value" "_attr_value" "" "buffer" "REMOVE" }    OUTPUT { OUTPUT FEATURE_TYPE AttributeManager_OUTPUT        }
# -------------------------------------------------------------------------
FACTORY_DEF {*} AggregateFactory    FACTORY_NAME { Aggregator_2 }    INPUT  FEATURE_TYPE AttributeManager_OUTPUT    MODE { ONE_LEVEL }    FLUSH_WHEN_GROUPS_CHANGE { <Unused> }    REMOVE_GEOMETRY { NO }    ACCUMULATE_ATTRIBUTES { All }    LIST_ATTRS_TO_INCLUDE { <Unused> }    LIST_ATTRS_TO_INCLUDE_MODE { <Unused> }    CONCATENATE_FIELDS { SampleValues }    SEPARATOR { <lf><lf> }    PRODUCE_MULTIS { YES }    ALL_ATTRS_LIST_GROUP_BY_MODE ADD    OUTPUT { AGGREGATE FEATURE_TYPE Aggregator_2_AGGREGATE          }
# -------------------------------------------------------------------------
FACTORY_DEF * TeeFactory   FACTORY_NAME "OpenAIConnector Input Input Collector"   INPUT FEATURE_TYPE Aggregator_2_AGGREGATE   OUTPUT FEATURE_TYPE OpenAIConnector_Input
MACRO OpenAIConnector_WORKSPACE_NAME OpenAIConnector
MACRO $(OpenAIConnector_WORKSPACE_NAME)_TRANSFORMER_GROUP 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_XFORMER_NAME OpenAIConnector
MACRO $(OpenAIConnector_WORKSPACE_NAME)_Request 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_apiKey fme_decrypt(MDowfCN8I3xcG3GQ/TeRRUJUZ5LDPtdvpscbh7Nj9gG/INBkAGA+fkaDrNbhZtfa3rmkUUrCxKWaAFwiYsKgWJNl/0mRpxUuP+IT2c+Qhh26JEZtUWAmpuoaQCdQ3ykKWm2zaoAM5MBCGaGEuYe+6AS07/nLNRJwqp1jdwP1FgVCbXRvZtWfKjEZlNJYQ+EicVc6cv2DxCYJyTljvXwF8mKxenML6FKJiHARQCO8OMJidKKZQJP1SeYIhqB0YrtGw4cGV2ZquQKifvRjB2Tl6wBAWDmeCg+R1jvft1tR17SISyTDv77K+mV80w2aaUSgybbF7coM0BrQPcpehfjlW+YxV73+9mPMFXKQeznZ22T8MJor57O44p8U2NQCw35HiFBs0oVP9VkkY0D/WzGRevseyX1pIEWJSQSFwkJVhiyXavMDz5E5SEYgTZHfVeGBXCDuIEEbfRRkPU5yD2nw2ZAVimDRD7UQhEEY6PosGqU17He4y35WEfAggQ40+EKuupOQSZRsKotTTqlYGHJtX49ymuKqfyZzOAUSUzDMcj8gfDgzOCcuhw2sK3fJaMszp3aRL1jaTQxI7oim7nwtpepEVCVPq0CQ0uFICs1M6VG2GMVkkxJWvgTZuDq9PDqM23Y/T4fpL7jtR+DLYs6GukeOCfSeCC1Vz0tm1A8I7pBi3cIBo8KAw0q0E9i/G+ThmqA48dqYFtqHl+FQ5PIr8ZB396+byU3FLme3FQGPFPEjK5/yC50eCV+4XZGZy/j5x+2/qwnG2s+IeiyB+EZMH1qNmWmgW2OBoyskE37dnP23UoH3ff+4yqaATB5ATo45/Q8hQ8OK0DReTtknYWtDF5vBbcPavQbwv9vNz4/ItWiaNI/48N8ALD/HLmKqk7xrE+kM7EOUdjM/U3WQSOBzKjakF7Dfw8TO)
MACRO $(OpenAIConnector_WORKSPACE_NAME)_Action Text Generation
MACRO $(OpenAIConnector_WORKSPACE_NAME)_Reasoning 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_effort 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_fileSearch 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_fileSearchUpload 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_vision 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_FileUpload NO
MACRO $(OpenAIConnector_WORKSPACE_NAME)_visionUploadFile <Unused>
MACRO $(OpenAIConnector_WORKSPACE_NAME)_visionURLPath NO
MACRO $(OpenAIConnector_WORKSPACE_NAME)_visionURL <Unused>
MACRO $(OpenAIConnector_WORKSPACE_NAME)_Embeddings 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_EmbeddingInput 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_EmbeddingModel 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_Input 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_model gpt-5
MACRO $(OpenAIConnector_WORKSPACE_NAME)_instructions 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_userPrompt You<space>are<space>a<space>bot<space>that<space>specializes<space>in<space>transforming<space>address<space>data<space>into<space>usable<space>information.<space>The<space>submitted<space>data<space>may<space>arrive<space>in<space>many<space>forms<space>including<space>a<space>single<space>address<space>attribute<comma><space>multiple<space>attributes<comma><space>etc.<space>Your<space>task<space>is<space>to<space>determine<space>the<space>attribute<space>mapping<space>required<space>based<space>on<space>the<space>attribute<space>name<space>and<space>sample<space>values<space>to<space>fit<space>the<space>new<space>schema<space>based<space>on<space>the<space>description<space>and<space>example<space>values<space>as<space>described<space>below:<lf><lf>FIELD<comma>DESCRIPTION<comma>EXAMPLE<lf>ST_NUM<comma><quote>Street<space>Number<space><openparen>i.e.<space>house<space>number<comma><space>address<space>number<comma><space>etc<closeparen><quote><comma>125<lf>APT_NUM<comma>Apartment<space>Number<comma>#101<lf>BLDGNAME<comma>Building<space>Name<comma>BLDG<space>D<lf>ST_NAME<comma><quote>Street<space>Name<space>and<space>Type<space><openparen>Street<comma><space>Avenue<comma><space>etc.<comma><space>can<space>be<space>abbreviated<space>but<space>expansion<space>of<space>abbreviations<space>is<space>preferred<closeparen><quote><comma>Powell<space>St<lf>NEIGHBH<comma>Neighborhood<space>Name<comma>Union<space>Square<lf>CITY<comma>City<space>Name<comma>San<space>Francisco<lf>STATE<comma>State<space><openparen>Two<space>Letter<space>Abbreviation<closeparen><comma>CA<lf>ZIP<comma>5-digit<space>zip<space>code<comma>94108<lf>CNT_NAME<comma>County<space>Name<comma>San<space>Francisco<lf>CNT_FIPS<comma>County<space>FIPS<space>6-4<space>code<space><openparen>refer<space>to<space>Information<space>Technology<space>Laboratory<closeparen><comma>06075f5<lf>ID<comma>A<space>unique<space>id<space>for<space>the<space>feature<comma><quote>B1<comma><space>B2<comma><space>B3<comma><space>etc<quote><lf><lf><lf>--<space>Source<space>Data--<lf><at>Value<openparen>SampleValues<closeparen><lf><lf>The<space>response<space>JSON<space>should<space>provide<space>the<space>attribute<space>name<space>that<space>corresponds<space>to<space>the<space>description<space>above<comma><space>not<space>the<space>values<space>from<space>the<space>sample<space>features<space>provided<space>above.<space>Only<space>output<space>a<space>single<space>mapping<comma><space>don<apos>t<space>give<space>me<space>multiple<space>arrays.<lf>
MACRO $(OpenAIConnector_WORKSPACE_NAME)_structuredOutput YES
MACRO $(OpenAIConnector_WORKSPACE_NAME)_JSONSchema <opencurly><lf><tab><quote>additionalProperties<quote>:<space>false<comma><lf><tab><quote>properties<quote>:<space><opencurly><lf><tab><tab><quote>Mapping<quote>:<space><opencurly><lf><tab><tab><tab><quote>items<quote>:<space><opencurly><lf><tab><tab><tab><tab><quote>additionalProperties<quote>:<space>false<comma><lf><tab><tab><tab><tab><quote>properties<quote>:<space><opencurly><lf><tab><tab><tab><tab><tab><quote>APT_NUM<quote>:<space><opencurly><lf><tab><tab><tab><tab><tab><tab><quote>type<quote>:<space><quote>string<quote><lf><tab><tab><tab><tab><tab><closecurly><comma><lf><tab><tab><tab><tab><tab><quote>BLDGNAME<quote>:<space><opencurly><lf><tab><tab><tab><tab><tab><tab><quote>type<quote>:<space><quote>string<quote><lf><tab><tab><tab><tab><tab><closecurly><comma><lf><tab><tab><tab><tab><tab><quote>CITY<quote>:<space><opencurly><lf><tab><tab><tab><tab><tab><tab><quote>type<quote>:<space><quote>string<quote><lf><tab><tab><tab><tab><tab><closecurly><comma><lf><tab><tab><tab><tab><tab><quote>CNT_FIPS<quote>:<space><opencurly><lf><tab><tab><tab><tab><tab><tab><quote>type<quote>:<space><quote>string<quote><lf><tab><tab><tab><tab><tab><closecurly><comma><lf><tab><tab><tab><tab><tab><quote>CNT_NAME<quote>:<space><opencurly><lf><tab><tab><tab><tab><tab><tab><quote>type<quote>:<space><quote>string<quote><lf><tab><tab><tab><tab><tab><closecurly><comma><lf><tab><tab><tab><tab><tab><quote>ID<quote>:<space><opencurly><lf><tab><tab><tab><tab><tab><tab><quote>type<quote>:<space><quote>string<quote><lf><tab><tab><tab><tab><tab><closecurly><comma><lf><tab><tab><tab><tab><tab><quote>NEIGHBH<quote>:<space><opencurly><lf><tab><tab><tab><tab><tab><tab><quote>type<quote>:<space><quote>string<quote><lf><tab><tab><tab><tab><tab><closecurly><comma><lf><tab><tab><tab><tab><tab><quote>STATE<quote>:<space><opencurly><lf><tab><tab><tab><tab><tab><tab><quote>type<quote>:<space><quote>string<quote><lf><tab><tab><tab><tab><tab><closecurly><comma><lf><tab><tab><tab><tab><tab><quote>ST_NAME<quote>:<space><opencurly><lf><tab><tab><tab><tab><tab><tab><quote>type<quote>:<space><quote>string<quote><lf><tab><tab><tab><tab><tab><closecurly><comma><lf><tab><tab><tab><tab><tab><quote>ST_NUM<quote>:<space><opencurly><lf><tab><tab><tab><tab><tab><tab><quote>type<quote>:<space><quote>string<quote><lf><tab><tab><tab><tab><tab><closecurly><comma><lf><tab><tab><tab><tab><tab><quote>ZIP<quote>:<space><opencurly><lf><tab><tab><tab><tab><tab><tab><quote>type<quote>:<space><quote>string<quote><lf><tab><tab><tab><tab><tab><closecurly><lf><tab><tab><tab><tab><closecurly><comma><lf><tab><tab><tab><tab><quote>required<quote>:<space><openbracket><lf><tab><tab><tab><tab><tab><quote>APT_NUM<quote><comma><lf><tab><tab><tab><tab><tab><quote>BLDGNAME<quote><comma><lf><tab><tab><tab><tab><tab><quote>CITY<quote><comma><lf><tab><tab><tab><tab><tab><quote>CNT_FIPS<quote><comma><lf><tab><tab><tab><tab><tab><quote>CNT_NAME<quote><comma><lf><tab><tab><tab><tab><tab><quote>ID<quote><comma><lf><tab><tab><tab><tab><tab><quote>NEIGHBH<quote><comma><lf><tab><tab><tab><tab><tab><quote>STATE<quote><comma><lf><tab><tab><tab><tab><tab><quote>ST_NAME<quote><comma><lf><tab><tab><tab><tab><tab><quote>ST_NUM<quote><comma><lf><tab><tab><tab><tab><tab><quote>ZIP<quote><lf><tab><tab><tab><tab><closebracket><comma><lf><tab><tab><tab><tab><quote>type<quote>:<space><quote>object<quote><lf><tab><tab><tab><closecurly><comma><lf><tab><tab><tab><quote>type<quote>:<space><quote>array<quote><lf><tab><tab><closecurly><lf><tab><closecurly><comma><lf><tab><quote>required<quote>:<space><openbracket><lf><tab><tab><quote>Mapping<quote><lf><tab><closebracket><comma><lf><tab><quote>type<quote>:<space><quote>object<quote><lf><closecurly><lf>
MACRO $(OpenAIConnector_WORKSPACE_NAME)_MCP <Unused>
MACRO $(OpenAIConnector_WORKSPACE_NAME)_MCPTools <Unused>
MACRO $(OpenAIConnector_WORKSPACE_NAME)_Advanced 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_temperature 1
MACRO $(OpenAIConnector_WORKSPACE_NAME)_maxOutputTokens 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_user 
MACRO $(OpenAIConnector_WORKSPACE_NAME)_TRANSFER_TIMEOUT_LENGTH 360
MACRO $(OpenAIConnector_WORKSPACE_NAME)_CONNECTION_TIMEOUT_LENGTH 60
MACRO $(OpenAIConnector_WORKSPACE_NAME)_RETRY_MAX_RETRIES 0
MACRO $(OpenAIConnector_WORKSPACE_NAME)_SUB_DOC_NAME OpenAIConnector
MACRO $(OpenAIConnector_WORKSPACE_NAME)_SUB_DOC_NAME OpenAIConnector
DEFAULT_MACRO OpenAIConnector_WORKSPACE_NAME ""
INCLUDE [puts {MACRO WB_OLD_CONTEXT_$(OpenAIConnector_WORKSPACE_NAME) $(WB_CURRENT_CONTEXT)};          puts {MACRO WB_CURRENT_CONTEXT $(OpenAIConnector_WORKSPACE_NAME)}]
FACTORY_DEF * TeeFactory   FACTORY_NAME "$(OpenAIConnector_WORKSPACE_NAME)_Input1764982336 Input Splitter"   INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Input"   OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Input"
# -------------------------------------------------------------------------
Tcl2 proc $(OpenAIConnector_WORKSPACE_NAME)_ParameterFetcher_doFetch {} {    foreach {name val} {"_Action {$($(OpenAIConnector_WORKSPACE_NAME)_Action$encode)} _fileSearchUpload {$($(OpenAIConnector_WORKSPACE_NAME)_fileSearchUpload$encode)} _visionUploadFile {$($(OpenAIConnector_WORKSPACE_NAME)_visionUploadFile$encode)} _model {$($(OpenAIConnector_WORKSPACE_NAME)_model$encode)} _instructions {$($(OpenAIConnector_WORKSPACE_NAME)_instructions)} _JSONSchema {$($(OpenAIConnector_WORKSPACE_NAME)_JSONSchema)} _temperature {$($(OpenAIConnector_WORKSPACE_NAME)_temperature$encode)} _maxOutputTokens {$($(OpenAIConnector_WORKSPACE_NAME)_maxOutputTokens$encode)} _TRANSFER_TIMEOUT_LENGTH {$($(OpenAIConnector_WORKSPACE_NAME)_TRANSFER_TIMEOUT_LENGTH$encode)} _visionURL {$($(OpenAIConnector_WORKSPACE_NAME)_visionURL$encode)} _userPrompt {$($(OpenAIConnector_WORKSPACE_NAME)_userPrompt)} _user {$($(OpenAIConnector_WORKSPACE_NAME)_user$encode)} _maxOutputTokens {$($(OpenAIConnector_WORKSPACE_NAME)_maxOutputTokens$encode)} _effort {$($(OpenAIConnector_WORKSPACE_NAME)_effort$encode)} _CONNECTION_TIMEOUT_LENGTH {$($(OpenAIConnector_WORKSPACE_NAME)_CONNECTION_TIMEOUT_LENGTH$encode)} _RETRY_MAX_RETRIES {$($(OpenAIConnector_WORKSPACE_NAME)_RETRY_MAX_RETRIES$encode)} _EmbeddingInput {$($(OpenAIConnector_WORKSPACE_NAME)_EmbeddingInput$encode)} _EmbeddingModel {$($(OpenAIConnector_WORKSPACE_NAME)_EmbeddingModel$encode)} _MCPTools {$($(OpenAIConnector_WORKSPACE_NAME)_MCPTools)}"} {         if { [string match {*<at>*} $val] == 1 } {             set val [FME_Execute EvaluateExpression {STRING} $val {$(OpenAIConnector_WORKSPACE_NAME)_ParameterFetcher}];         } elseif {[string match {*FME_CONDITIONAL*} $val] == 1} {             set val [FME_Execute EvaluateExpression {STRING} $val {$(OpenAIConnector_WORKSPACE_NAME)_ParameterFetcher}];         } else {             set val [FME_DecodeTextOrAttr $val];         };       FME_SetAttribute [FME_DecodeText $name] $val    } }
FACTORY_DEF {*} TeeFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_ParameterFetcher }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Input"    OUTPUT { FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_ParameterFetcher_OUTPUT"         @Tcl2($(OpenAIConnector_WORKSPACE_NAME)_ParameterFetcher_doFetch)          }
# -------------------------------------------------------------------------
FACTORY_DEF {*} StringReplacerFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_Unused }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_ParameterFetcher_OUTPUT"    USE_REGEX { YES }    CASE_SENSITIVE { NO }    SOURCE_ATTRIBUTES { _Action,_fileSearchUpload,_instructions,_JSONSchema,_maxOutputTokens,_model,_temperature,_TRANSFER_TIMEOUT_LENGTH,_visionUploadFile,_visionURL,_userPrompt,_EmbeddingInput,_EmbeddingModel }    FIND_TEXT { "<backslash><lt>Unused<backslash><gt>" }    REPLACE_TEXT { "" }    REPLACE_NO_MATCH { "_FME_NO_OP_" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Unused_OUTPUT"          }
# -------------------------------------------------------------------------
FACTORY_DEF {*} TestFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_Tester }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Unused_OUTPUT"    TEST { _JSONSchema ATTRIBUTE_HAS_A_VALUE "" ENCODED }    BOOLEAN_OPERATOR { OR }    COMPOSITE_TEST_EXPR { "<Unused>" }    PRESERVE_FEATURE_ORDER { PER_OUTPUT_PORT }    OUTPUT { PASSED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Tester_PASSED"         }    OUTPUT { FAILED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Tester_FAILED"         }
# -------------------------------------------------------------------------
FACTORY_DEF {*} JSONFormatterFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_JSONValidator }       INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Tester_PASSED"    JSON_DOCUMENT { "@EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>_JSONSchema<closeparen>,$(OpenAIConnector_WORKSPACE_NAME)_JSONValidator)" }    READ_FROM_FILE { NO }    FILEPATH_OR_URL { "<Unused>" }    FORMAT NONE    VALIDATION_TYPE { SYNTAX }    SCHEMA_FILE { "<Unused>" }    SUBSCHEMA_URI { "<Unused>" }    SYNTAX_ERROR_LIST_ATTR { "_json_error" }    SCHEMA_ERROR_LIST_ATTR { "<Unused>" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_JSONValidator_PASSED"        }    OUTPUT { INVALID FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_JSONValidator_FAILED"           "@EvaluateExpression(ATTR_CREATE_EXPR_PROPAGATE_MISSING_FDIV_TYPED,JSON<space>Error,Invalid<space>JSON<comma><space>review<space>the<space>_json_error<space>list<space>in<space>the<space>Feature<space>Information<space>Window<space>for<space>additional<space>information<space>about<space>the<space>reason<space>for<space>failure.,UTF8, FEATURE_TYPE)"  }
# -------------------------------------------------------------------------
FACTORY_DEF {*} TeeFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_TestFilter_INPUT }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_JSONValidator_PASSED"    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Tester_FAILED"    OUTPUT { FEATURE_TYPE $(OpenAIConnector_WORKSPACE_NAME)_TestFilter_INPUTLINE }
FACTORY_DEF {*} TestFactory FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_TestFilter } INPUT FEATURE_TYPE $(OpenAIConnector_WORKSPACE_NAME)_TestFilter_INPUTLINE FEATURE_TABLE_SHIM_SUPPORT Yes PASSED_TEST_GROUP_OUTPUT FIRST TEST_GROUP TEST { _visionUploadFile ATTRIBUTE_HAS_A_VALUE "" ENCODED } TEST { @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>_Action<closeparen>,$(OpenAIConnector_WORKSPACE_NAME)_TestFilter) = Vision ENCODED } BOOLEAN_OPERATOR AND COMPOSITE_TEST_EXPR "1 AND 2" OUTPUT PASSED_0 FEATURE_TYPE $(OpenAIConnector_WORKSPACE_NAME)_TestFilter_EncodeImage TEST_GROUP TEST { _fileSearchUpload ATTRIBUTE_HAS_A_VALUE "" ENCODED } TEST { @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>_Action<closeparen>,$(OpenAIConnector_WORKSPACE_NAME)_TestFilter) = File<space>Search ENCODED } BOOLEAN_OPERATOR AND COMPOSITE_TEST_EXPR "1 AND 2" OUTPUT PASSED_1 FEATURE_TYPE $(OpenAIConnector_WORKSPACE_NAME)_TestFilter_UploadFile TEST_GROUP TEST { @EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>_Action<closeparen>,$(OpenAIConnector_WORKSPACE_NAME)_TestFilter) = Embeddings ENCODED } BOOLEAN_OPERATOR OR COMPOSITE_TEST_EXPR "1" OUTPUT PASSED_2 FEATURE_TYPE $(OpenAIConnector_WORKSPACE_NAME)_TestFilter_Embeddings OUTPUT FAILED FEATURE_TYPE $(OpenAIConnector_WORKSPACE_NAME)_TestFilter_No<space>Action<space>Required
# -------------------------------------------------------------------------
FACTORY_DEF {*} ExecuteFunctionFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_AttributeFileReader }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_TestFilter_EncodeImage"    FUNCTION_DEFINITION { @File(REJECTABLE,ENCODED_PARAMS,DestReadSrcWrite,_file_contents,"@EvaluateExpression(FDIV,STRING_ENCODED,FME_CONDITIONAL:DEFAULT_VALUE'<at>Value<openparen>_fileSearchUpload<closeparen>'BOOL_OP;OR;COMPOSITE_TEST;1;TEST <at>Value<openparen>_Action<closeparen> = Vision'<at>Value<openparen>_visionUploadFile<closeparen>'FME_NUM_CONDITIONS2___,$(OpenAIConnector_WORKSPACE_NAME)_AttributeFileReader)",fme-binary) }    OUTPUT { COMPLETE FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_AttributeFileReader_OUTPUT"        }    OUTPUT { REJECTED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_AttributeFileReader_<REJECTED>"        }
DEFAULT_MACRO _WB_BYPASS_TERMINATION No
FACTORY_DEF * TeeFactory FACTORY_NAME "$(OpenAIConnector_WORKSPACE_NAME)_AttributeFileReader_<Rejected>" INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_AttributeFileReader_<REJECTED>"  NO_LOGGING   OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, OpenAIConnector_AttributeFileReader<space>output<space>a<space><lt>Rejected<gt><space>feature.<space><space>To<space>continue<space>translation<space>when<space>features<space>are<space>rejected<comma><space>change<space><apos>Workspace<space>Parameters<apos><space><gt><space>Log<space>and<space>Troubleshoot<space><gt><space><apos>Rejected<space>Feature<space>Handling<apos><space>to<space><apos>Continue<space>Translation<apos>)
# -------------------------------------------------------------------------
FACTORY_DEF {*} TextEncoderFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_BinaryEncoder }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_AttributeFileReader_OUTPUT"    ACTION { BASE64_ENCODE }    ATTR { _file_contents _file_contents }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_BinaryEncoder_OUTPUT"        }
# -------------------------------------------------------------------------
# Combine the two "file path attribute" parameters into one value.
DEFAULT_MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_FILE_PATH_ATTR
INCLUDE [ 	if { {<Unused>} == {<Unused>} } { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_FILE_PATH_ATTR "<Unused>"}; 	} else { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_FILE_PATH_ATTR "<Unused>"}; 	}; 	if { {json_fragments} == {json_fragments} } { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_SAVE_FILE_LOOKUP NO}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_TARGET_ATTR _response_body}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_TARGET_ATTR_ENCODING utf-8} 	} else { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_SAVE_FILE_LOOKUP <Unused>}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_TARGET_ATTR <Unused>}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_TARGET_ATTR_ENCODING <Unused>} 	} ]
FACTORY_DEF {*} HTTPFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile }       INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_TestFilter_UploadFile"    TARGET_URL { "https:<solidus><solidus>api.openai.com<solidus>v1<solidus>files" }    HTTP_METHOD { POST }    SAVE_FILE { $($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_SAVE_FILE_LOOKUP) }    OUTPUT_FILENAME { "<Unused>" }    OUTPUT_DIRECTORY { "<Unused>" }    FILE_EXTENSION { "<Unused>" }    TARGET_ATTR { "$($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_TARGET_ATTR)" }    FILE_PATH_ATTR { $($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_FILE_PATH_ATTR) }    UPLOAD_FILE { "<Unused>" }    UPLOAD_BODY { "<Unused>" }    UPLOAD_TYPE { MULTIPART_UPLOAD }    UPLOAD_CONTENT_TYPE { "<Unused>" }    COMBINED_MULTIPART_TABLE { purpose StringUpload SOURCE_EXPRESSION;user_data;MIME_TYPE;text<solidus>plain file FileUpload SOURCE_FILE;@EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>_fileSearchUpload<closeparen>,$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile);MIME_TYPE;text<solidus>plain }    MULTIPART_CONTENT_TYPE { FORM_DATA }    REQUEST_HEADER_TABLE { Authorization;@EvaluateExpression(FDIV,STRING_ENCODED,Bearer<space>$($(OpenAIConnector_WORKSPACE_NAME)_apiKey$encode),$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile) }    ADDITIONAL_URL_PARAMETERS {  }    AUTH_USERNAME { "<Unused>" }    AUTH_PASSWORD { "<Unused>" }    AUTH_METHOD { "<Unused>" }    TARGET_ATTRIBUTE_ENCODING { $($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_TARGET_ATTR_ENCODING) }    RESPONSE_HEADER_LIST_ATTR { "" }    STATUS_CODE_ATTR { "_http_status_code" }    ERROR_ATTR { "_error" }    CONNECTION_TIMEOUT_LENGTH { @EvaluateExpression(FDIV,FLOAT,<at>Value<openparen>_CONNECTION_TIMEOUT_LENGTH<closeparen>,$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile) }    TRANSFER_TIMEOUT_LENGTH { @EvaluateExpression(FDIV,FLOAT,<at>Value<openparen>_TRANSFER_TIMEOUT_LENGTH<closeparen>,$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile) }    FOLLOW_REDIRECTS { FOLLOW_WITH_GET }    REDIRECT_AUTH { ORIGINAL_DOMAIN_ONLY }    VERIFY_SSL_CERTIFICATES { Yes }    NAMED_CONNECTION { "<Unused>" }    USE_COOKIES { No }    MAX_TRANSFERS_IN_PROGRESS { 25 }    MAX_HTTP_VERSION { HTTP_2 }    RATE_LIMIT_MAX_REQUESTS { <Unused> }    RATE_LIMIT_INTERVAL_IN_SECONDS { <Unused> }    RATE_LIMIT_REQUEST_TIMING { <Unused> }    RETRY_FAILED_TRANSFERS { CONNECTION 429 500 501 502 503 504 505 506 507 508 509 510 511 }    RETRY_MAX_RETRIES { $($(OpenAIConnector_WORKSPACE_NAME)_RETRY_MAX_RETRIES) }    RETRY_INITIAL_BACKOFF { 500 }    SPLIT_MULTIPART_RESPONSE { NO }    MULTIPART_RESPONSE_HEADER_LIST_ATTR { "<Unused>" }    MINIMUM_ENCRYPTION_LEVEL { "OS_DEFAULT" }    CLIENT_CERTIFICATE_TYPE { "NONE" }    CLIENT_CERTIFICATE_FROM_OS { "<Unused>" }    CLIENT_CERTIFICATE_FILE { "<Unused>" }    CLIENT_CERTIFICATE_PRIVATE_KEY_FILE { "<Unused>" }    CLIENT_CERTIFICATE_PASSWORD { "<Unused>" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_Output"          }    OUTPUT { REJECTED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_<REJECTED>"          }
FACTORY_DEF {*} JSONQueryFactory    FACTORY_NAME $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_JSONFlattener    INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_Output"    MODE FLATTEN    READ_FROM_FILE NO    JSON_DOCUMENT @Value(_response_body)    EXPLODE_QUERY "json"    RECURSIVE_FLATTEN YES    ERROR_LIST_ATTR _json_error    OUTPUT { EXPLODED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_Output" }    OUTPUT { REJECTED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_<REJECTED>"          }
FACTORY_DEF {*} JSONQueryFactory    FACTORY_NAME $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_JSONFragmenter    INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_Output"    MODE EXPLODE    EXPLODE_FORMAT JSON    REJECT_EMPTY_LISTS YES    EXTRACT_ATTR Yes    JSON_ATTR _response_body    READ_FROM_FILE NO    EXPLODE_QUERY { "json<openbracket><quote>id<quote><closebracket>" }    RECURSIVE_FLATTEN NO    OUTPUT { EXPLODED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_Output" }    OUTPUT { REJECTED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_<REJECTED>"          }
# -------------------------------------------------------------------------
FACTORY_DEF {*} StringReplacerFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_Backslash }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_Output"    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_BinaryEncoder_OUTPUT"    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_TestFilter_No<space>Action<space>Required"    USE_REGEX { NO }    CASE_SENSITIVE { NO }    SOURCE_ATTRIBUTES { _Action,_fileSearchUpload,_instructions,_maxOutputTokens,_model,_temperature,_TRANSFER_TIMEOUT_LENGTH,_userPrompt,_visionUploadFile,_visionURL }    FIND_TEXT { "<backslash>" }    REPLACE_TEXT { "<backslash><backslash>" }    REPLACE_NO_MATCH { "_FME_NO_OP_" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Backslash_OUTPUT"          }
# -------------------------------------------------------------------------
FACTORY_DEF {*} StringReplacerFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_Quotes }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Backslash_OUTPUT"    USE_REGEX { NO }    CASE_SENSITIVE { NO }    SOURCE_ATTRIBUTES { _Action,_fileSearchUpload,_instructions,_maxOutputTokens,_model,_temperature,_TRANSFER_TIMEOUT_LENGTH,_userPrompt,_visionUploadFile,_visionURL }    FIND_TEXT { "<quote>" }    REPLACE_TEXT { "<backslash><quote>" }    REPLACE_NO_MATCH { "_FME_NO_OP_" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Quotes_OUTPUT"          }
# -------------------------------------------------------------------------
FACTORY_DEF {*} StringReplacerFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_Backspace }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Quotes_OUTPUT"    USE_REGEX { NO }    CASE_SENSITIVE { NO }    SOURCE_ATTRIBUTES { _Action,_fileSearchUpload,_instructions,_maxOutputTokens,_model,_temperature,_TRANSFER_TIMEOUT_LENGTH,_userPrompt,_visionUploadFile,_visionURL }    FIND_TEXT { "<backspace>" }    REPLACE_TEXT { "<backslash>b" }    REPLACE_NO_MATCH { "_FME_NO_OP_" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Backspace_OUTPUT"          }
# -------------------------------------------------------------------------
FACTORY_DEF {*} StringReplacerFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_Newline }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Backspace_OUTPUT"    USE_REGEX { NO }    CASE_SENSITIVE { NO }    SOURCE_ATTRIBUTES { _Action,_fileSearchUpload,_instructions,_maxOutputTokens,_model,_temperature,_TRANSFER_TIMEOUT_LENGTH,_userPrompt,_visionUploadFile,_visionURL }    FIND_TEXT { "<lf>" }    REPLACE_TEXT { "<backslash>n" }    REPLACE_NO_MATCH { "_FME_NO_OP_" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Newline_OUTPUT"          }
# -------------------------------------------------------------------------
FACTORY_DEF {*} StringReplacerFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_Tab }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Newline_OUTPUT"    USE_REGEX { NO }    CASE_SENSITIVE { NO }    SOURCE_ATTRIBUTES { _Action,_fileSearchUpload,_instructions,_maxOutputTokens,_model,_temperature,_TRANSFER_TIMEOUT_LENGTH,_userPrompt,_visionUploadFile,_visionURL }    FIND_TEXT { "<tab>" }    REPLACE_TEXT { "<backslash>t" }    REPLACE_NO_MATCH { "_FME_NO_OP_" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Tab_OUTPUT"          }
# -------------------------------------------------------------------------
FACTORY_DEF {*} StringReplacerFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_CarriageReturn }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Tab_OUTPUT"    USE_REGEX { NO }    CASE_SENSITIVE { NO }    SOURCE_ATTRIBUTES { _Action,_fileSearchUpload,_instructions,_maxOutputTokens,_model,_temperature,_TRANSFER_TIMEOUT_LENGTH,_userPrompt,_visionUploadFile,_visionURL }    FIND_TEXT { "<cr>" }    REPLACE_TEXT { "<backslash>r" }    REPLACE_NO_MATCH { "_FME_NO_OP_" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_CarriageReturn_OUTPUT"          }
# -------------------------------------------------------------------------
DEFAULT_MACRO $(OpenAIConnector_WORKSPACE_NAME)_StringConcatenator_464e0db1_c7a3_40b2_8044_b320b24610130_ATTRS_TO_EVALUATE
INCLUDE [    if {{SELECTED} == {OUTGOING}} {       if {[string length {<Unused>}] == 0} { return; };       set attrs [list {<Unused>}];    } else {       set attrs [split {_fileSearchUpload _instructions _model _user _userPrompt _visionUploadFile _visionURL _response_body _effort} { }];    };    set clauses {};    foreach attr $attrs {       lappend clauses "ATTR";       lappend clauses "{";       lappend clauses $attr;       lappend clauses {"<quote><at>CurrentAttribute<openparen><closeparen><quote>"};       lappend clauses "}";    };    puts "MACRO $(OpenAIConnector_WORKSPACE_NAME)_StringConcatenator_464e0db1_c7a3_40b2_8044_b320b24610130_ATTRS_TO_EVALUATE [join $clauses { }]"; ]
FACTORY_DEF {*} AttrSetFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_StringConcatenator }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_CarriageReturn_OUTPUT"    ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV    $($(OpenAIConnector_WORKSPACE_NAME)_StringConcatenator_464e0db1_c7a3_40b2_8044_b320b24610130_ATTRS_TO_EVALUATE)    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_StringConcatenator_OUTPUT"        }
# -------------------------------------------------------------------------
FACTORY_DEF {*} AttrSetFactory    COMMAND_PARM_EVALUATION SINGLE_PASS    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_AttributeManager_2 }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_StringConcatenator_OUTPUT"    MULTI_FEATURE_MODE { NO }    NULL_ATTR_MODE { NO_OP }    ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV    ACTION_COLUMN 4    DEF_VAL_COLUMN 2    NUM_OF_COLUMNS 5    MISSING_INPUT_ATTR_HANDLING RENAME_SET_VALUE REMOVE    ATTR_ACTION { "_response_body" "FileId" "" "buffer" "RENAME_SET_VALUE" }      ATTR_ACTION { "" "_FileIdNoQuotes" "<at>Value<openparen>FileId<closeparen>" "varchar<openparen>200<closeparen>" "SET_TO" }      ATTR_ACTION { "_model" "_model" "" "buffer" "NO_OP" }      ATTR_ACTION { "_temperature" "_temperature" "" "buffer" "NO_OP" }      ATTR_ACTION { "" "message" "" "varchar<openparen>200<closeparen>" "SET_TO" }      ATTR_ACTION { "_TRANSFER_TIMEOUT_LENGTH" "_TRANSFER_TIMEOUT_LENGTH" "FME_CONDITIONAL:DEFAULT_VALUE'360'BOOL_OP;OR;COMPOSITE_TEST;1;TEST _TRANSFER_TIMEOUT_LENGTH ATTRIBUTE_HAS_A_VALUE _FME_BLANK_STRING_'<at>Value<openparen>_TRANSFER_TIMEOUT_LENGTH<closeparen>'FME_NUM_CONDITIONS2___" "buffer" "SET_TO" }      ATTR_ACTION { "_JSONSchema" "_JSONSchema" "FME_CONDITIONAL:DEFAULT_VALUE'<comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>text<quote>:<space><opencurly><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><quote>format<quote>:<space><opencurly><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><quote>type<quote>:<space><quote>json_schema<quote><comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><quote>name<quote>:<space><quote>StructuredResponse<quote><comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><quote>schema<quote>:<space><at>Value<openparen>_JSONSchema<closeparen><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><space><closecurly><lf><space><space><closecurly>'BOOL_OP;OR;COMPOSITE_TEST;1;TEST _JSONSchema ATTRIBUTE_IS_EMPTY _FME_BLANK_STRING_''FME_NUM_CONDITIONS2___" "buffer" "SET_TO" }      ATTR_ACTION { "_Action" "_Action" "" "buffer" "NO_OP" }      ATTR_ACTION { "_fileSearchUpload" "_fileSearchUpload" "" "buffer" "NO_OP" }      ATTR_ACTION { "_visionUploadFile" "_visionUploadFile" "" "buffer" "NO_OP" }      ATTR_ACTION { "_instructions" "_instructions" "" "buffer" "NO_OP" }      ATTR_ACTION { "_maxOutputTokens" "_maxOutputTokens" "FME_CONDITIONAL:DEFAULT_VALUE'null'BOOL_OP;OR;COMPOSITE_TEST;1;TEST _maxOutputTokens ATTRIBUTE_HAS_A_VALUE _FME_BLANK_STRING_'<at>Value<openparen>_maxOutputTokens<closeparen>'FME_NUM_CONDITIONS2___" "buffer" "SET_TO" }      ATTR_ACTION { "_visionURL" "_visionURL" "" "buffer" "NO_OP" }      ATTR_ACTION { "_userPrompt" "_userPrompt" "" "buffer" "NO_OP" }      ATTR_ACTION { "_user" "_user" "" "buffer" "NO_OP" }      ATTR_ACTION { "" "UploadBody" "FME_CONDITIONAL:DEFAULT_VALUE'_FME_NO_OP_'BOOL_OP;OR;COMPOSITE_TEST;1;TEST <at>Value<openparen>_Action<closeparen> = Text<space>Generation'<opencurly><lf><space><space><space><space><quote>model<quote>:<space><at>Value<openparen>_model<closeparen><comma><lf><space><space><space><space><quote>temperature<quote>:<space><at>Value<openparen>_temperature<closeparen><comma><lf><space><space><space><space><quote>user<quote>:<space><at>Value<openparen>_user<closeparen><comma><lf><space><space><space><space><quote>max_output_tokens<quote>:<space><at>Value<openparen>_maxOutputTokens<closeparen><comma><lf><space><space><space><space><quote>input<quote>:<space><openbracket><opencurly><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>role<quote>:<space><quote>developer<quote><comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>content<quote>:<space><openbracket><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><opencurly><quote>type<quote>:<space><quote>input_text<quote><comma><space><quote>text<quote>:<space><at>Value<openparen>_instructions<closeparen><closecurly><lf><space><space><space><space><space><space><space><space><space><space><space><space><closebracket><lf><space><space><space><space><space><space><space><space><space><space><closecurly><comma><lf><space><space><space><space><space><space><space><space><space><space><opencurly><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>role<quote>:<space><quote>user<quote><comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>content<quote>:<space><openbracket><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><opencurly><quote>type<quote>:<space><quote>input_text<quote><comma><space><quote>text<quote>:<space><at>Value<openparen>_userPrompt<closeparen><closecurly><lf><space><space><space><space><space><space><space><space><space><space><space><space><closebracket><lf><space><space><space><space><space><space><space><space><space><space><closecurly><closebracket><at>Value<openparen>_JSONSchema<closeparen><lf><space><space><space><space><space><space><space><space><space><space><closecurly>'BOOL_OP;AND;COMPOSITE_TEST;1 AND 2;TEST <at>Value<openparen>_Action<closeparen> = Vision;TEST <at>Value<openparen>_visionURL<closeparen> != <quote><quote>'<opencurly><lf><space><space><space><space><quote>model<quote>:<space><at>Value<openparen>_model<closeparen><comma><lf><space><space><space><space><quote>temperature<quote>:<space><at>Value<openparen>_temperature<closeparen><comma><lf><space><space><space><space><quote>user<quote>:<space><at>Value<openparen>_user<closeparen><comma><lf><space><space><space><space><quote>max_output_tokens<quote>:<space><at>Value<openparen>_maxOutputTokens<closeparen><comma><lf><space><space><space><space><quote>input<quote>:<space><openbracket><opencurly><lf><space><space><space><space><space><space><space><space><quote>role<quote>:<space><quote>developer<quote><comma><lf><space><space><space><space><space><space><space><space><quote>content<quote>:<space><openbracket><lf><space><space><space><space><space><space><space><space><space><space><opencurly><quote>type<quote>:<space><quote>input_text<quote><comma><space><quote>text<quote>:<space><at>Value<openparen>_instructions<closeparen><closecurly><lf><space><space><space><space><space><space><space><space><closebracket><lf><space><space><space><space><space><space><closecurly><comma><lf><space><space><space><space><space><space><opencurly><lf><space><space><space><space><space><space><space><space><quote>role<quote>:<space><quote>user<quote><comma><lf><space><space><space><space><space><space><space><space><quote>content<quote>:<space><openbracket><lf><space><space><space><space><space><space><space><space><space><space><opencurly><quote>type<quote>:<space><quote>input_text<quote><comma><space><quote>text<quote>:<space><at>Value<openparen>_userPrompt<closeparen><closecurly><comma><lf><space><space><space><space><space><space><space><space><space><space><opencurly><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>type<quote>:<space><quote>input_image<quote><comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>image_url<quote>:<space><at>Value<openparen>_visionURL<closeparen><lf><space><space><space><space><space><space><space><space><space><space><closecurly><lf><space><space><space><space><space><space><space><space><closebracket><lf><space><space><space><space><space><space><closecurly><lf><space><space><space><space><closebracket><at>Value<openparen>_JSONSchema<closeparen><lf><space><space><closecurly>'BOOL_OP;AND;COMPOSITE_TEST;1 AND 2;TEST <at>Value<openparen>_Action<closeparen> = Vision;TEST <at>Value<openparen>_visionUploadFile<closeparen> != <quote><quote>'<opencurly><lf><space><space><space><space><quote>model<quote>:<space><at>Value<openparen>_model<closeparen><comma><lf><space><space><space><space><quote>temperature<quote>:<space><at>Value<openparen>_temperature<closeparen><comma><lf><space><space><space><space><quote>user<quote>:<space><at>Value<openparen>_user<closeparen><comma><lf><space><space><space><space><quote>max_output_tokens<quote>:<space><at>Value<openparen>_maxOutputTokens<closeparen><comma><lf><space><space><space><space><quote>input<quote>:<space><openbracket><opencurly><lf><space><space><space><space><space><space><space><space><quote>role<quote>:<space><quote>developer<quote><comma><lf><space><space><space><space><space><space><space><space><quote>content<quote>:<space><openbracket><lf><space><space><space><space><space><space><space><space><space><space><opencurly><quote>type<quote>:<space><quote>input_text<quote><comma><space><quote>text<quote>:<space><at>Value<openparen>_instructions<closeparen><closecurly><lf><space><space><space><space><space><space><space><space><closebracket><lf><space><space><space><space><space><space><closecurly><comma><lf><space><space><space><space><space><space><opencurly><lf><space><space><space><space><space><space><space><space><quote>role<quote>:<space><quote>user<quote><comma><lf><space><space><space><space><space><space><space><space><quote>content<quote>:<space><openbracket><lf><space><space><space><space><space><space><space><space><space><space><opencurly><quote>type<quote>:<space><quote>input_text<quote><comma><space><quote>text<quote>:<space><at>Value<openparen>_userPrompt<closeparen><closecurly><comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><opencurly><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>type<quote>:<space><quote>input_image<quote><comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>image_url<quote>:<space><quote>data:image<solidus>jpeg<semicolon>base64<comma><at>Value<openparen>_file_contents<closeparen><quote><lf><space><space><space><space><space><space><space><space><space><space><closecurly><lf><space><space><space><space><space><space><space><space><closebracket><lf><space><space><space><space><space><space><closecurly><lf><space><space><space><space><closebracket><at>Value<openparen>_JSONSchema<closeparen><lf><space><space><closecurly>'BOOL_OP;OR;COMPOSITE_TEST;1;TEST <at>Value<openparen>_Action<closeparen> = Web<space>Search'<space><space><opencurly><lf><space><space><space><space><quote>model<quote>:<space><at>Value<openparen>_model<closeparen><comma><lf><space><space><space><space><quote>temperature<quote>:<space><at>Value<openparen>_temperature<closeparen><comma><lf><space><space><space><space><quote>user<quote>:<space><at>Value<openparen>_user<closeparen><comma><lf><space><space><space><space><quote>max_output_tokens<quote>:<space><at>Value<openparen>_maxOutputTokens<closeparen><comma><lf><space><space><space><space><quote>tools<quote>:<space><openbracket><opencurly><space><quote>type<quote>:<space><quote>web_search_preview<quote><space><closecurly><closebracket><comma><lf><space><space><space><space><quote>input<quote>:<space><openbracket><opencurly><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>role<quote>:<space><quote>developer<quote><comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>content<quote>:<space><openbracket><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><opencurly><quote>type<quote>:<space><quote>input_text<quote><comma><space><quote>text<quote>:<space><at>Value<openparen>_instructions<closeparen><closecurly><lf><space><space><space><space><space><space><space><space><space><space><space><space><closebracket><lf><space><space><space><space><space><space><space><space><space><space><closecurly><comma><lf><space><space><space><space><space><space><space><space><space><space><opencurly><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>role<quote>:<space><quote>user<quote><comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>content<quote>:<space><openbracket><lf><space><space><space><space><space><space><space><space><space><space><space><space><space><space><opencurly><quote>type<quote>:<space><quote>input_text<quote><comma><space><quote>text<quote>:<space><at>Value<openparen>_userPrompt<closeparen><closecurly><lf><space><space><space><space><space><space><space><space><space><space><space><space><closebracket><lf><space><space><space><space><space><space><space><space><space><space><closecurly><lf><space><space><space><space><space><space><space><space><closebracket><at>Value<openparen>_JSONSchema<closeparen><lf><space><space><space><space><space><space><space><space><space><space><closecurly>'BOOL_OP;OR;COMPOSITE_TEST;1;TEST <at>Value<openparen>_Action<closeparen> = File<space>Search'<opencurly><lf><space><space><space><space><quote>model<quote>:<space><at>Value<openparen>_model<closeparen><comma><lf><space><space><space><space><quote>temperature<quote>:<space><at>Value<openparen>_temperature<closeparen><comma><lf><space><space><space><space><quote>user<quote>:<space><at>Value<openparen>_user<closeparen><comma><lf><space><space><space><space><quote>max_output_tokens<quote>:<space><at>Value<openparen>_maxOutputTokens<closeparen><comma><lf><space><space><space><space><quote>input<quote>:<space><openbracket><opencurly><lf><space><space><space><space><space><space><space><space><quote>role<quote>:<space><quote>developer<quote><comma><lf><space><space><space><space><space><space><space><space><quote>content<quote>:<space><openbracket><lf><space><space><space><space><space><space><space><space><space><space><opencurly><quote>type<quote>:<space><quote>input_text<quote><comma><space><quote>text<quote>:<space><at>Value<openparen>_instructions<closeparen><closecurly><lf><space><space><space><space><space><space><space><space><closebracket><lf><space><space><space><space><space><space><closecurly><comma><lf><space><space><space><space><space><space><opencurly><lf><space><space><space><space><space><space><space><space><quote>role<quote>:<space><quote>user<quote><comma><lf><space><space><space><space><space><space><space><space><quote>content<quote>:<space><openbracket><lf><space><space><space><space><space><space><space><space><space><space><opencurly><quote>type<quote>:<space><quote>input_text<quote><comma><space><quote>text<quote>:<space><at>Value<openparen>_userPrompt<closeparen><closecurly><comma><lf><space><space><space><space><space><space><space><space><space><space><opencurly><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>type<quote>:<space><quote>input_file<quote><comma><lf><space><space><space><space><space><space><space><space><space><space><space><space><quote>file_id<quote>:<space><at>Value<openparen>FileId<closeparen><lf><space><space><space><space><space><space><space><space><space><space><closecurly><lf><space><space><space><space><space><space><space><space><closebracket><lf><space><space><space><space><space><space><closecurly><lf><space><space><space><space><closebracket><at>Value<openparen>_JSONSchema<closeparen><lf><space><space><closecurly>'BOOL_OP;OR;COMPOSITE_TEST;1;TEST <at>Value<openparen>_Action<closeparen> = Reasoning'<opencurly><lf><space><space><space><space><quote>model<quote>:<space><at>Value<openparen>_model<closeparen><comma><lf><space><space><space><space><quote>temperature<quote>:<space><at>Value<openparen>_temperature<closeparen><comma><lf><space><space><space><space><quote>user<quote>:<space><at>Value<openparen>_user<closeparen><comma><lf><space><space><space><space><quote>max_output_tokens<quote>:<space><at>Value<openparen>_maxOutputTokens<closeparen><comma><lf><space><space><space><space><quote>reasoning<quote>:<space><opencurly><quote>effort<quote>:<space><at>Value<openparen>_effort<closeparen><closecurly><comma><lf><space><space><space><space><quote>input<quote>:<space><openbracket><opencurly><lf><space><space><space><space><space><space><space><space><quote>role<quote>:<space><quote>developer<quote><comma><lf><space><space><space><space><space><space><space><space><quote>content<quote>:<space><openbracket><lf><space><space><space><space><space><space><space><space><space><space><opencurly><quote>type<quote>:<space><quote>input_text<quote><comma><space><quote>text<quote>:<space><at>Value<openparen>_instructions<closeparen><closecurly><lf><space><space><space><space><space><space><space><space><closebracket><lf><space><space><space><space><space><space><closecurly><comma><lf><space><space><space><space><space><space><opencurly><lf><space><space><space><space><space><space><space><space><quote>role<quote>:<space><quote>user<quote><comma><lf><space><space><space><space><space><space><space><space><quote>content<quote>:<space><openbracket><lf><space><space><space><space><space><space><space><space><space><space><opencurly><quote>type<quote>:<space><quote>input_text<quote><comma><space><quote>text<quote>:<space><at>Value<openparen>_userPrompt<closeparen><closecurly><lf><space><space><space><space><space><space><space><space><closebracket><lf><space><space><space><space><space><space><closecurly><lf><space><space><space><space><closebracket><at>Value<openparen>_JSONSchema<closeparen><lf><space><space><closecurly>'BOOL_OP;OR;COMPOSITE_TEST;1;TEST <at>Value<openparen>_Action<closeparen> = Remote<space>MCP'<opencurly><lf><space><space><quote>model<quote>:<space><at>Value<openparen>_model<closeparen><comma><lf><space><space><space><space><quote>tools<quote>:<space><openbracket><lf><at>Value<openparen>_MCPTools<closeparen><lf><space><space><space><space><closebracket><comma><lf><space><space><space><space><quote>input<quote>:<space><at>Value<openparen>_userPrompt<closeparen><lf><space><space><closecurly>'FME_NUM_CONDITIONS8___" "varchar<openparen>200<closeparen>" "SET_TO" }      ATTR_ACTION { "_file_contents" "_file_contents" "" "buffer" "NO_OP" }      ATTR_ACTION { "_http_status_code" "_http_status_code" "" "buffer" "NO_OP" }      ATTR_ACTION { "_effort" "_effort" "" "buffer" "NO_OP" }      ATTR_ACTION { "_CONNECTION_TIMEOUT_LENGTH" "_CONNECTION_TIMEOUT_LENGTH" "" "buffer" "NO_OP" }      ATTR_ACTION { "_RETRY_MAX_RETRIES" "_RETRY_MAX_RETRIES" "" "buffer" "NO_OP" }      ATTR_ACTION { "_EmbeddingInput" "_EmbeddingInput" "" "buffer" "NO_OP" }      ATTR_ACTION { "_EmbeddingModel" "_EmbeddingModel" "" "buffer" "NO_OP" }      ATTR_ACTION { "_MCPTools" "_MCPTools" "" "buffer" "NO_OP" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_AttributeManager_2_OUTPUT"        }
# -------------------------------------------------------------------------
FACTORY_DEF {*} StringValueFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_AttributeTrimmer }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_AttributeManager_2_OUTPUT"    FACTORY_MODE ATTRIBUTE_TRIMMER    SRC_ATTRS { _FileIdNoQuotes }    TRIM_TYPE { "BOTH" }    TRIM_CHARS { "<quote>" }    TRIM_TO_NONE { "Yes" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_AttributeTrimmer_OUTPUT"          }
# -------------------------------------------------------------------------
# Combine the two "file path attribute" parameters into one value.
DEFAULT_MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_FILE_PATH_ATTR
INCLUDE [ 	if { {<Unused>} == {<Unused>} } { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_FILE_PATH_ATTR "<Unused>"}; 	} else { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_FILE_PATH_ATTR "<Unused>"}; 	}; 	if { {json_fragments} == {json_fragments} } { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_SAVE_FILE_LOOKUP NO}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_TARGET_ATTR _response_body}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_TARGET_ATTR_ENCODING utf-8} 	} else { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_SAVE_FILE_LOOKUP <Unused>}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_TARGET_ATTR <Unused>}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_TARGET_ATTR_ENCODING <Unused>} 	} ]
FACTORY_DEF {*} HTTPFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller }       INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_AttributeTrimmer_OUTPUT"    TARGET_URL { "https:<solidus><solidus>api.openai.com<solidus>v1<solidus>responses" }    HTTP_METHOD { POST }    SAVE_FILE { $($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_SAVE_FILE_LOOKUP) }    OUTPUT_FILENAME { "<Unused>" }    OUTPUT_DIRECTORY { "<Unused>" }    FILE_EXTENSION { "<Unused>" }    TARGET_ATTR { "$($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_TARGET_ATTR)" }    FILE_PATH_ATTR { $($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_FILE_PATH_ATTR) }    UPLOAD_FILE { "<Unused>" }    UPLOAD_BODY { "@EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>UploadBody<closeparen>,$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller)" }    UPLOAD_TYPE { STRING_UPLOAD }    UPLOAD_CONTENT_TYPE { "application/json" }    COMBINED_MULTIPART_TABLE {  }    MULTIPART_CONTENT_TYPE { <Unused> }    REQUEST_HEADER_TABLE { Authorization;@EvaluateExpression(FDIV,STRING_ENCODED,Bearer<space>$($(OpenAIConnector_WORKSPACE_NAME)_apiKey$encode),$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller) }    ADDITIONAL_URL_PARAMETERS {  }    AUTH_USERNAME { "<Unused>" }    AUTH_PASSWORD { "<Unused>" }    AUTH_METHOD { "<Unused>" }    TARGET_ATTRIBUTE_ENCODING { $($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_TARGET_ATTR_ENCODING) }    RESPONSE_HEADER_LIST_ATTR { "" }    STATUS_CODE_ATTR { "_http_status_code" }    ERROR_ATTR { "_error" }    CONNECTION_TIMEOUT_LENGTH { @EvaluateExpression(FDIV,FLOAT,<at>Value<openparen>_CONNECTION_TIMEOUT_LENGTH<closeparen>,$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller) }    TRANSFER_TIMEOUT_LENGTH { @EvaluateExpression(FDIV,FLOAT,<at>Value<openparen>_TRANSFER_TIMEOUT_LENGTH<closeparen>,$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller) }    FOLLOW_REDIRECTS { FOLLOW_WITH_GET }    REDIRECT_AUTH { ORIGINAL_DOMAIN_ONLY }    VERIFY_SSL_CERTIFICATES { Yes }    NAMED_CONNECTION { "<Unused>" }    USE_COOKIES { No }    MAX_TRANSFERS_IN_PROGRESS { 25 }    MAX_HTTP_VERSION { HTTP_2 }    RATE_LIMIT_MAX_REQUESTS { <Unused> }    RATE_LIMIT_INTERVAL_IN_SECONDS { <Unused> }    RATE_LIMIT_REQUEST_TIMING { <Unused> }    RETRY_FAILED_TRANSFERS { CONNECTION 429 500 501 502 503 504 505 506 507 508 509 510 511 }    RETRY_MAX_RETRIES { $($(OpenAIConnector_WORKSPACE_NAME)_RETRY_MAX_RETRIES) }    RETRY_INITIAL_BACKOFF { 500 }    SPLIT_MULTIPART_RESPONSE { NO }    MULTIPART_RESPONSE_HEADER_LIST_ATTR { "<Unused>" }    MINIMUM_ENCRYPTION_LEVEL { "OS_DEFAULT" }    CLIENT_CERTIFICATE_TYPE { "NONE" }    CLIENT_CERTIFICATE_FROM_OS { "<Unused>" }    CLIENT_CERTIFICATE_FILE { "<Unused>" }    CLIENT_CERTIFICATE_PRIVATE_KEY_FILE { "<Unused>" }    CLIENT_CERTIFICATE_PASSWORD { "<Unused>" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_Output"          }    OUTPUT { REJECTED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_<REJECTED>"          }
FACTORY_DEF {*} JSONQueryFactory    FACTORY_NAME $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_JSONFlattener    INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_Output"    MODE FLATTEN    READ_FROM_FILE NO    JSON_DOCUMENT @Value(_response_body)    EXPLODE_QUERY "json"    RECURSIVE_FLATTEN YES    ERROR_LIST_ATTR _json_error    OUTPUT { EXPLODED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_Output" }    OUTPUT { REJECTED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_<REJECTED>"          }
FACTORY_DEF {*} JSONQueryFactory    FACTORY_NAME $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_JSONFragmenter    INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_Output"    MODE EXPLODE    EXPLODE_FORMAT JSON    REJECT_EMPTY_LISTS YES    EXTRACT_ATTR Yes    JSON_ATTR _response_body    READ_FROM_FILE NO    EXPLODE_QUERY { "json<openbracket><quote>output<quote><closebracket><openbracket>*<closebracket><openbracket><quote>content<quote><closebracket><openbracket>*<closebracket><openbracket><quote>text<quote><closebracket>" }    RECURSIVE_FLATTEN NO    OUTPUT { EXPLODED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_Output" }    OUTPUT { REJECTED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_<REJECTED>"          }
# -------------------------------------------------------------------------
# Combine the two "file path attribute" parameters into one value.
DEFAULT_MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_FILE_PATH_ATTR
INCLUDE [ 	if { {<Unused>} == {<Unused>} } { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_FILE_PATH_ATTR "<Unused>"}; 	} else { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_FILE_PATH_ATTR "<Unused>"}; 	}; 	if { {json_fragments} == {json_fragments} } { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_SAVE_FILE_LOOKUP NO}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_TARGET_ATTR _response_body}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_TARGET_ATTR_ENCODING utf-8} 	} else { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_SAVE_FILE_LOOKUP <Unused>}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_TARGET_ATTR <Unused>}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_TARGET_ATTR_ENCODING <Unused>} 	} ]
FACTORY_DEF {*} HTTPFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding }       INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_TestFilter_Embeddings"    TARGET_URL { "https:<solidus><solidus>api.openai.com<solidus>v1<solidus>embeddings" }    HTTP_METHOD { POST }    SAVE_FILE { $($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_SAVE_FILE_LOOKUP) }    OUTPUT_FILENAME { "<Unused>" }    OUTPUT_DIRECTORY { "<Unused>" }    FILE_EXTENSION { "<Unused>" }    TARGET_ATTR { "$($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_TARGET_ATTR)" }    FILE_PATH_ATTR { $($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_FILE_PATH_ATTR) }    UPLOAD_FILE { "<Unused>" }    UPLOAD_BODY { "@EvaluateExpression(FDIV,STRING_ENCODED,<opencurly><lf><space><space><quote>model<quote>:<space><quote><at>Value<openparen>_EmbeddingModel<closeparen><quote><comma><lf><space><space><quote>input<quote>:<space><quote><at>Value<openparen>_EmbeddingInput<closeparen><quote><lf><closecurly>,$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding)" }    UPLOAD_TYPE { STRING_UPLOAD }    UPLOAD_CONTENT_TYPE { "application/json" }    COMBINED_MULTIPART_TABLE {  }    MULTIPART_CONTENT_TYPE { <Unused> }    REQUEST_HEADER_TABLE { Authorization;@EvaluateExpression(FDIV,STRING_ENCODED,Bearer<space>$($(OpenAIConnector_WORKSPACE_NAME)_apiKey$encode),$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding) }    ADDITIONAL_URL_PARAMETERS {  }    AUTH_USERNAME { "<Unused>" }    AUTH_PASSWORD { "<Unused>" }    AUTH_METHOD { "<Unused>" }    TARGET_ATTRIBUTE_ENCODING { $($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_TARGET_ATTR_ENCODING) }    RESPONSE_HEADER_LIST_ATTR { "" }    STATUS_CODE_ATTR { "_http_status_code" }    ERROR_ATTR { "_error" }    CONNECTION_TIMEOUT_LENGTH { 60 }    TRANSFER_TIMEOUT_LENGTH { 90 }    FOLLOW_REDIRECTS { FOLLOW_WITH_GET }    REDIRECT_AUTH { ORIGINAL_DOMAIN_ONLY }    VERIFY_SSL_CERTIFICATES { Yes }    NAMED_CONNECTION { "<Unused>" }    USE_COOKIES { No }    MAX_TRANSFERS_IN_PROGRESS { 25 }    MAX_HTTP_VERSION { HTTP_2 }    RATE_LIMIT_MAX_REQUESTS { <Unused> }    RATE_LIMIT_INTERVAL_IN_SECONDS { <Unused> }    RATE_LIMIT_REQUEST_TIMING { <Unused> }    RETRY_FAILED_TRANSFERS { <Unused> }    RETRY_MAX_RETRIES { <Unused> }    RETRY_INITIAL_BACKOFF { <Unused> }    SPLIT_MULTIPART_RESPONSE { NO }    MULTIPART_RESPONSE_HEADER_LIST_ATTR { "<Unused>" }    MINIMUM_ENCRYPTION_LEVEL { "OS_DEFAULT" }    CLIENT_CERTIFICATE_TYPE { "NONE" }    CLIENT_CERTIFICATE_FROM_OS { "<Unused>" }    CLIENT_CERTIFICATE_FILE { "<Unused>" }    CLIENT_CERTIFICATE_PRIVATE_KEY_FILE { "<Unused>" }    CLIENT_CERTIFICATE_PASSWORD { "<Unused>" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_Output"          }    OUTPUT { REJECTED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_<REJECTED>"          }
FACTORY_DEF {*} JSONQueryFactory    FACTORY_NAME $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_JSONFlattener    INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_Output"    MODE FLATTEN    READ_FROM_FILE NO    JSON_DOCUMENT @Value(_response_body)    EXPLODE_QUERY "json"    RECURSIVE_FLATTEN YES    ERROR_LIST_ATTR _json_error    OUTPUT { EXPLODED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_Output" }    OUTPUT { REJECTED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_<REJECTED>"          }
FACTORY_DEF {*} JSONQueryFactory    FACTORY_NAME $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_JSONFragmenter    INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_Output"    MODE EXPLODE    EXPLODE_FORMAT JSON    REJECT_EMPTY_LISTS YES    EXTRACT_ATTR Yes    JSON_ATTR _response_body    READ_FROM_FILE NO    EXPLODE_QUERY { "json<openbracket><quote>data<quote><closebracket>" }    RECURSIVE_FLATTEN NO    OUTPUT { EXPLODED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_Output" }    OUTPUT { REJECTED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_<REJECTED>"          }
DEFAULT_MACRO _WB_BYPASS_TERMINATION No
FACTORY_DEF * TeeFactory FACTORY_NAME "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_<Rejected>" INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_<REJECTED>"  NO_LOGGING   OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, OpenAIConnector_OpenAPICaller_CreateEmbedding<space>output<space>a<space><lt>Rejected<gt><space>feature.<space><space>To<space>continue<space>translation<space>when<space>features<space>are<space>rejected<comma><space>change<space><apos>Workspace<space>Parameters<apos><space><gt><space>Log<space>and<space>Troubleshoot<space><gt><space><apos>Rejected<space>Feature<space>Handling<apos><space>to<space><apos>Continue<space>Translation<apos>)
# -------------------------------------------------------------------------
FACTORY_DEF {*} TestFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_Tester_2 }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_Output"    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_CreateEmbedding_Output"    TEST { "@EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>_Action<closeparen>,$(OpenAIConnector_WORKSPACE_NAME)_Tester_2)" = File<space>Search ENCODED }    BOOLEAN_OPERATOR { OR }    COMPOSITE_TEST_EXPR { "<Unused>" }    PRESERVE_FEATURE_ORDER { PER_OUTPUT_PORT }    OUTPUT { PASSED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Tester_2_PASSED"         }    OUTPUT { FAILED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Tester_2_FAILED"         }
# -------------------------------------------------------------------------
# Combine the two "file path attribute" parameters into one value.
DEFAULT_MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_FILE_PATH_ATTR
INCLUDE [ 	if { {<Unused>} == {<Unused>} } { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_FILE_PATH_ATTR "<Unused>"}; 	} else { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_FILE_PATH_ATTR "<Unused>"}; 	}; 	if { {save_response} == {json_fragments} } { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_SAVE_FILE_LOOKUP NO}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_TARGET_ATTR _response_body}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_TARGET_ATTR_ENCODING utf-8} 	} else { 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_SAVE_FILE_LOOKUP NO}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_TARGET_ATTR _delete_result}; 		puts {MACRO $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_TARGET_ATTR_ENCODING auto-detect} 	} ]
FACTORY_DEF {*} HTTPFactory    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile }       INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Tester_2_PASSED"    TARGET_URL { "@EvaluateExpression(FDIV,STRING_ENCODED,https:<solidus><solidus>api.openai.com<solidus>v1<solidus>files<solidus><at>Value<openparen>_FileIdNoQuotes<closeparen>,$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile)" }    HTTP_METHOD { DELETE }    SAVE_FILE { $($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_SAVE_FILE_LOOKUP) }    OUTPUT_FILENAME { "<Unused>" }    OUTPUT_DIRECTORY { "<Unused>" }    FILE_EXTENSION { "<Unused>" }    TARGET_ATTR { "$($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_TARGET_ATTR)" }    FILE_PATH_ATTR { $($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_FILE_PATH_ATTR) }    UPLOAD_FILE { "<Unused>" }    UPLOAD_BODY { "" }    UPLOAD_TYPE { STRING_UPLOAD }    UPLOAD_CONTENT_TYPE { "" }    COMBINED_MULTIPART_TABLE {  }    MULTIPART_CONTENT_TYPE { <Unused> }    REQUEST_HEADER_TABLE { Authorization;@EvaluateExpression(FDIV,STRING_ENCODED,Bearer<space>$($(OpenAIConnector_WORKSPACE_NAME)_apiKey$encode),$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile) }    ADDITIONAL_URL_PARAMETERS {  }    AUTH_USERNAME { "<Unused>" }    AUTH_PASSWORD { "<Unused>" }    AUTH_METHOD { "<Unused>" }    TARGET_ATTRIBUTE_ENCODING { $($(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_TARGET_ATTR_ENCODING) }    RESPONSE_HEADER_LIST_ATTR { "" }    STATUS_CODE_ATTR { "_http_status_code" }    ERROR_ATTR { "_error" }    CONNECTION_TIMEOUT_LENGTH { @EvaluateExpression(FDIV,FLOAT,<at>Value<openparen>_CONNECTION_TIMEOUT_LENGTH<closeparen>,$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile) }    TRANSFER_TIMEOUT_LENGTH { @EvaluateExpression(FDIV,FLOAT,<at>Value<openparen>_TRANSFER_TIMEOUT_LENGTH<closeparen>,$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile) }    FOLLOW_REDIRECTS { FOLLOW_WITH_GET }    REDIRECT_AUTH { ORIGINAL_DOMAIN_ONLY }    VERIFY_SSL_CERTIFICATES { Yes }    NAMED_CONNECTION { "<Unused>" }    USE_COOKIES { No }    MAX_TRANSFERS_IN_PROGRESS { 25 }    MAX_HTTP_VERSION { HTTP_2 }    RATE_LIMIT_MAX_REQUESTS { <Unused> }    RATE_LIMIT_INTERVAL_IN_SECONDS { <Unused> }    RATE_LIMIT_REQUEST_TIMING { <Unused> }    RETRY_FAILED_TRANSFERS { CONNECTION 429 500 501 502 503 504 505 506 507 508 509 510 511 }    RETRY_MAX_RETRIES { $($(OpenAIConnector_WORKSPACE_NAME)_RETRY_MAX_RETRIES) }    RETRY_INITIAL_BACKOFF { 500 }    SPLIT_MULTIPART_RESPONSE { NO }    MULTIPART_RESPONSE_HEADER_LIST_ATTR { "<Unused>" }    MINIMUM_ENCRYPTION_LEVEL { "OS_DEFAULT" }    CLIENT_CERTIFICATE_TYPE { "NONE" }    CLIENT_CERTIFICATE_FROM_OS { "<Unused>" }    CLIENT_CERTIFICATE_FILE { "<Unused>" }    CLIENT_CERTIFICATE_PRIVATE_KEY_FILE { "<Unused>" }    CLIENT_CERTIFICATE_PASSWORD { "<Unused>" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_Output"          }    OUTPUT { REJECTED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_<REJECTED>"          }
FACTORY_DEF {__DISABLED__} JSONQueryFactory    FACTORY_NAME $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_JSONFlattener    INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_Output"    MODE FLATTEN    READ_FROM_FILE NO    JSON_DOCUMENT @Value(_response_body)    EXPLODE_QUERY "json"    RECURSIVE_FLATTEN YES    ERROR_LIST_ATTR _json_error    OUTPUT { EXPLODED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_Output" }    OUTPUT { REJECTED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_<REJECTED>"          }
FACTORY_DEF {__DISABLED__} JSONQueryFactory    FACTORY_NAME $(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_JSONFragmenter    INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_Output"    MODE EXPLODE    EXPLODE_FORMAT JSON    REJECT_EMPTY_LISTS YES    EXTRACT_ATTR Yes    JSON_ATTR _response_body    READ_FROM_FILE NO    EXPLODE_QUERY { "<Unused>" }    RECURSIVE_FLATTEN NO    OUTPUT { EXPLODED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_Output" }    OUTPUT { REJECTED FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_<REJECTED>"          }
# -------------------------------------------------------------------------
FACTORY_DEF {*} AttrSetFactory    COMMAND_PARM_EVALUATION SINGLE_PASS    FACTORY_NAME { $(OpenAIConnector_WORKSPACE_NAME)_AttributeManager }    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_Output"    INPUT  FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Tester_2_FAILED"    MULTI_FEATURE_MODE { NO }    NULL_ATTR_MODE { NO_OP }    ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV    ACTION_COLUMN 4    DEF_VAL_COLUMN 2    NUM_OF_COLUMNS 5    MISSING_INPUT_ATTR_HANDLING RENAME_SET_VALUE REMOVE    ATTR_ACTION { "" "Response" "<at>Value<openparen>_response_body<closeparen>" "varchar<openparen>200<closeparen>" "SET_TO" }      ATTR_ACTION { "_Action" "_Action" "" "buffer" "REMOVE" }      ATTR_ACTION { "_fileSearchUpload" "_fileSearchUpload" "" "buffer" "REMOVE" }      ATTR_ACTION { "_visionUploadFile" "_visionUploadFile" "" "buffer" "REMOVE" }      ATTR_ACTION { "_model" "_model" "" "buffer" "REMOVE" }      ATTR_ACTION { "_instructions" "_instructions" "" "buffer" "REMOVE" }      ATTR_ACTION { "_JSONSchema" "_JSONSchema" "" "buffer" "REMOVE" }      ATTR_ACTION { "_temperature" "_temperature" "" "buffer" "REMOVE" }      ATTR_ACTION { "_maxOutputTokens" "_maxOutputTokens" "" "buffer" "REMOVE" }      ATTR_ACTION { "_TRANSFER_TIMEOUT_LENGTH" "_TRANSFER_TIMEOUT_LENGTH" "" "buffer" "REMOVE" }      ATTR_ACTION { "_visionURL" "_visionURL" "" "buffer" "REMOVE" }      ATTR_ACTION { "_userPrompt" "_userPrompt" "" "buffer" "REMOVE" }      ATTR_ACTION { "_http_status_code" "_http_status_code" "" "buffer" "REMOVE" }      ATTR_ACTION { "_response_body" "_response_body" "" "buffer" "REMOVE" }      ATTR_ACTION { "_file_contents" "_file_contents" "" "buffer" "REMOVE" }      ATTR_ACTION { "_delete_result" "_delete_result" "" "buffer" "REMOVE" }      ATTR_ACTION { "message" "message" "" "varchar<openparen>200<closeparen>" "REMOVE" }      ATTR_ACTION { "_user" "_user" "" "buffer" "REMOVE" }      ATTR_ACTION { "UploadBody" "UploadBody" "" "varchar<openparen>200<closeparen>" "REMOVE" }      ATTR_ACTION { "FileId" "FileId" "" "buffer" "REMOVE" }      ATTR_ACTION { "_FileIdNoQuotes" "_FileIdNoQuotes" "" "varchar<openparen>200<closeparen>" "REMOVE" }      ATTR_ACTION { "_effort" "_effort" "" "buffer" "REMOVE" }      ATTR_ACTION { "_CONNECTION_TIMEOUT_LENGTH" "_CONNECTION_TIMEOUT_LENGTH" "" "buffer" "REMOVE" }      ATTR_ACTION { "_RETRY_MAX_RETRIES" "_RETRY_MAX_RETRIES" "" "buffer" "REMOVE" }      ATTR_ACTION { "_EmbeddingInput" "_EmbeddingInput" "" "buffer" "REMOVE" }      ATTR_ACTION { "_EmbeddingModel" "_EmbeddingModel" "" "buffer" "REMOVE" }      ATTR_ACTION { "_MCPTools" "_MCPTools" "" "buffer" "REMOVE" }    OUTPUT { OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_AttributeManager_OUTPUT"        }
FACTORY_DEF * TeeFactory   FACTORY_NAME "$(OpenAIConnector_WORKSPACE_NAME)_Output1764982336 Output Collector"   INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_AttributeManager_OUTPUT"   OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Output"
FACTORY_DEF * TeeFactory   FACTORY_NAME "$(OpenAIConnector_WORKSPACE_NAME)_Rejected1764982336 Output Collector"   INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_UploadFile_<REJECTED>"   INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_<REJECTED>"   INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_OpenAPICaller_DeleteFile_<REJECTED>"   INPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_JSONValidator_FAILED"   OUTPUT FEATURE_TYPE "$(OpenAIConnector_WORKSPACE_NAME)_Rejected" @RemoveAttributes(_Action,_fileSearchUpload,_visionUploadFile,_model,_instructions,_JSONSchema,_temperature,_maxOutputTokens,_TRANSFER_TIMEOUT_LENGTH,_visionURL,_userPrompt,_user,_effort,_CONNECTION_TIMEOUT_LENGTH,_RETRY_MAX_RETRIES,_EmbeddingInput,_EmbeddingModel,_MCPTools,FileId,_FileIdNoQuotes,message,UploadBody,_file_contents)
INCLUDE [puts {MACRO WB_CURRENT_CONTEXT $(WB_OLD_CONTEXT_$(OpenAIConnector_WORKSPACE_NAME))}]
FACTORY_DEF * TeeFactory   FACTORY_NAME "OpenAIConnector Output Output Renamer/Nuker"   INPUT FEATURE_TYPE OpenAIConnector_Output   OUTPUT FEATURE_TYPE OpenAIConnector_Output
FACTORY_DEF * TeeFactory   FACTORY_NAME "OpenAIConnector Rejected Output Renamer/Nuker"   INPUT FEATURE_TYPE OpenAIConnector_Rejected
# -------------------------------------------------------------------------
FACTORY_DEF {CONNECTED} CreationFactory    FACTORY_NAME { JSONFragmenter_Creator }    OUTPUT { FEATURE_TYPE JSONFragmenter_____CREATED______ }
FACTORY_DEF {*} JSONQueryFactory    FACTORY_NAME { JSONFragmenter }    INPUT { FEATURE_TYPE JSONFragmenter_____CREATED______ }    INPUT  FEATURE_TYPE OpenAIConnector_Output    MODE EXPLODE    EXPLODE_FORMAT { JSON }    REJECT_EMPTY_LISTS { YES }    EXTRACT_ATTR { Yes }    JSON_ATTR { "Response" }    READ_FROM_FILE { NO }    FILEPATH_OR_URL { "<Unused>" }    OUTPUT_ATTRIBUTE { "<Unused>" }    EXPLODE_QUERY { "<space>json<openbracket><quote>Mapping<quote><closebracket><openbracket>*<closebracket><openbracket>*<closebracket>" }    RECURSIVE_FLATTEN { YES }    OUTPUT { EXPLODED FEATURE_TYPE JSONFragmenter_FRAGMENTS        }    OUTPUT { REJECTED FEATURE_TYPE JSONFragmenter_<REJECTED>        }
DEFAULT_MACRO _WB_BYPASS_TERMINATION No
FACTORY_DEF * TeeFactory FACTORY_NAME JSONFragmenter_<Rejected> INPUT FEATURE_TYPE JSONFragmenter_<REJECTED>  NO_LOGGING   OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, JSONFragmenter<space>output<space>a<space><lt>Rejected<gt><space>feature.<space><space>To<space>continue<space>translation<space>when<space>features<space>are<space>rejected<comma><space>change<space><apos>Workspace<space>Parameters<apos><space><gt><space>Log<space>and<space>Troubleshoot<space><gt><space><apos>Rejected<space>Feature<space>Handling<apos><space>to<space><apos>Continue<space>Translation<apos>)
# -------------------------------------------------------------------------
FACTORY_DEF {*} AttrSetFactory    COMMAND_PARM_EVALUATION SINGLE_PASS    FACTORY_NAME { AttributeManager_2 }    INPUT  FEATURE_TYPE JSONFragmenter_FRAGMENTS    MULTI_FEATURE_MODE { NO }    NULL_ATTR_MODE { NO_OP }    ATTRSET_CREATE_DIRECTIVES _PROPAGATE_MISSING_FDIV    ACTION_COLUMN 4    DEF_VAL_COLUMN 2    NUM_OF_COLUMNS 5    MISSING_INPUT_ATTR_HANDLING RENAME_SET_VALUE REMOVE    ATTR_ACTION { "Response" "SOURCE" "" "varchar<openparen>200<closeparen>" "RENAME_SET_VALUE" }      ATTR_ACTION { "SampleValues" "SampleValues" "" "buffer" "REMOVE" }      ATTR_ACTION { "json_type" "json_type" "" "buffer" "REMOVE" }      ATTR_ACTION { "json_index" "DESTINATION" "" "uint32" "RENAME_SET_VALUE" }    OUTPUT { OUTPUT FEATURE_TYPE AttributeManager_2_OUTPUT        }
# -------------------------------------------------------------------------
INCLUDE [    puts {DEFAULT_MACRO FeatureWriterDataset_FeatureWriter @EvaluateExpression(FDIV,STRING_ENCODED,$(LUT_Output$encode),FeatureWriter)}; ]
FACTORY_DEF {*} WriterFactory    COMMAND_PARM_EVALUATION SINGLE_PASS    FEATURE_TABLE_SHIM_SUPPORT INPUT_SPEC_ONLY    FLUSH_WHEN_GROUPS_CHANGE { <Unused> }    FACTORY_NAME { FeatureWriter }    FACTORY_CONFIG_PARAMETERS { ESCAPE_COMMAS_IN_FTP_FORMAT_PARAMETERS,no }    WRITER_TYPE { CSV2 }    WRITER_DATASET { "$(FeatureWriterDataset_FeatureWriter)" }    WRITER_SETTINGS { "RUNTIME_MACROS,DATASET_GROUP<comma><comma>EXTENSION<comma>csv<comma>EXISTING_FILE_HANDLING<comma>Yes<comma>FIELDS_GROUP<comma><comma>DELIMITER<comma><lt>comma<gt><comma>WRITE_FIELD_NAMES<comma>firstrow<comma>ENCODING_GROUP<comma><comma>ENCODING<comma>UTF-8<comma>WRITE_BOM_FOR_UNICODE<comma>Yes<comma>SPATIAL_GROUP<comma><comma>COORDINATE_FIELDS_FROM_GEOM_GROUP<comma>YES<comma>COORDINATE_SYSTEM<comma><comma>COORDINATE_DETECTION_MODE<comma>automatic<comma>X_FIELD_NAME<comma><lt>Unused<gt><comma>Y_FIELD_NAME<comma><lt>Unused<gt><comma>Z_FIELD_NAME<comma><lt>Unused<gt><comma>ADVANCED_GROUP<comma><comma>QUALIFY_FIELD_NAMES<comma>if_needed<comma>QUALIFY_FIELD_VALUES<comma>if_needed<comma>UNQUALIFIED_FIELD_VALUE_HANDLING<comma><lt>Unused<gt><comma>TREAT_EMBEDDED_FIELD_QUALIFIERS_AS_UNSAFE<comma>Yes<comma>FIELD_QUALIFIER_CHARACTER<comma><lt>quote<gt><comma>FIELD_QUALIFIER_ESCAPE_CHARACTER<comma><lt>quote<gt><comma>ROW_TERMINATION<comma>System<comma>WRITE_SCHEMA_FILE<comma>NO<comma>EXISTING_SCHEMA_FILE_HANDLING<comma><lt>Unused<gt><comma>COORDINATE_SYSTEM_GRANULARITY<comma>FEATURE_TYPE<comma>NETWORK_AUTHENTICATION<comma>,METAFILE,CSV2" }    WRITER_METAFILE { "ATTRIBUTE_CASE,ANY,ATTRIBUTE_INVALID_CHARS,,ATTRIBUTE_LENGTH,255,ATTR_TYPE_MAP,string<comma>fme_buffer<comma>string<comma>fme_binarybuffer<comma>string<comma>fme_xml<comma>string<comma>fme_json<comma>varchar<openparen>width<closeparen><comma>fme_varchar<openparen>width<closeparen><comma>varchar<openparen>width<closeparen><comma>fme_varbinary<openparen>width<closeparen><comma>varchar<openparen>width<closeparen><comma>fme_char<openparen>width<closeparen><comma>varchar<openparen>width<closeparen><comma>fme_binary<openparen>width<closeparen><comma>datetime<comma>fme_datetime<comma>time<comma>fme_time<comma>date<comma>fme_date<comma>string<comma>fme_real64<comma>real64<comma>fme_real64<comma>x_coordinate<comma>fme_real64<comma>y_coordinate<comma>fme_real64<comma>z_coordinate<comma>fme_real64<comma>string<comma>fme_real32<comma>real32<comma>fme_real32<comma>string<comma>fme_int64<comma>int64<comma>fme_int64<comma>string<comma>fme_int32<comma>int32<comma>fme_int32<comma>string<comma>fme_int16<comma>int16<comma>fme_int16<comma>string<comma>fme_int8<comma>int8<comma>fme_int8<comma>string<comma>fme_uint64<comma>uint64<comma>fme_uint64<comma>string<comma>fme_uint32<comma>uint32<comma>fme_uint32<comma>string<comma>fme_uint16<comma>uint16<comma>fme_uint16<comma>string<comma>fme_uint8<comma>uint8<comma>fme_uint8<comma>string<comma>fme_boolean<comma>boolean<comma>fme_boolean<comma><quote>number<openparen>width<comma>decimal<closeparen><quote><comma><quote>fme_decimal<openparen>width<comma>decimal<closeparen><quote>,DEST_ILLEGAL_ATTR_LIST,,FEATURE_TYPE_CASE,ANY,FEATURE_TYPE_INVALID_CHARS,<quote>:?*<lt><gt><pipe>,FEATURE_TYPE_LENGTH,0,FEATURE_TYPE_LENGTH_INCLUDES_PREFIX,false,FEATURE_TYPE_RESERVED_WORDS,,FORMAT_METAFILE,$(FME_HOME_ENCODED)metafile<backslash>CSV2.fmf,FORMAT_NAME,CSV2,GEOM_MAP,csv_none<comma>fme_no_geom<comma>csv_point<comma>fme_point<comma>csv_none<comma>fme_line<comma>csv_none<comma>fme_polygon<comma>csv_none<comma>fme_text<comma>csv_none<comma>fme_ellipse<comma>csv_none<comma>fme_arc<comma>csv_none<comma>fme_rectangle<comma>csv_none<comma>fme_rounded_rectangle<comma>fme_no_map<comma>fme_no_geom<comma>csv_none<comma>fme_collection<comma>csv_none<comma>fme_raster<comma>csv_none<comma>fme_surface<comma>csv_none<comma>fme_solid<comma>csv_none<comma>fme_point_cloud<comma>csv_none<comma>fme_voxel_grid,READER_ATTR_INDEX_TYPES,,READER_FORMAT_TYPE,DYNAMIC,READER_USES_DEF,yes,SOURCE,no,SUPPORTS_FEAT_TYPE_FANOUT,yes,SUPPORTS_MULTI_GEOM,yes,WORKBENCH_CANNED_SCHEMA,,WRITER,CSV2,WRITER_ATTR_INDEX_TYPES,,WRITER_DEFLINE_PARMS,<quote>GUI<space>NAMEDGROUP<space>csv_dataset_group<space>csv_existing_file_handling<space>Dataset<quote><comma><comma><quote>GUI<space>CHOICE<space>csv_existing_file_handling<space>Yes%No<space>Overwrite<space>Existing<space>File<quote><comma>Yes<comma><quote>GUI<space>NAMEDGROUP<space>csv_fields_group<space>csv_write_field_names<space>Fields<quote><comma><comma><quote>GUI<space>LOOKUP_CHOICE<space>csv_write_field_names<space>If<lt>space<gt>Writing<lt>space<gt>First<lt>space<gt>Row<comma>firstrow%Yes<comma>yes%No<comma>no<space>Write<space>Field<space>Names<space>Row<quote><comma>firstrow<comma><quote>GUI<space>NAMEDGROUP<space>csv_types_group<space>csv_date_output_format<space>Types<quote><comma><comma><quote>GUI<space>STRING_OR_LOOKUP_CHOICE_ENCODED<space>csv_date_output_format<space><quote><quote><backslash><quote><quote>FME<lt>space<gt><lt>openparen<gt>auto<lt>space<gt>format<lt>closeparen<gt><comma>FME<backslash><quote><quote>%<backslash><quote><quote>ISO<lt>space<gt><lt>openparen<gt>auto<lt>space<gt>format<lt>closeparen<gt><comma>ISO<backslash><quote><quote>%<backslash><quote><quote>%Y%m%d<lt>space<gt><lt>openparen<gt>FME<lt>space<gt>date<lt>closeparen<gt><comma>%Y%m%d<backslash><quote><quote>%<backslash><quote><quote>%H%M%S<lt>space<gt><lt>openparen<gt>FME<lt>space<gt>time<lt>closeparen<gt><comma>%H%M%S<backslash><quote><quote>%<backslash><quote><quote>%H%M%S%z<lt>space<gt><lt>openparen<gt>FME<lt>space<gt>time<lt>space<gt>with<lt>space<gt>offset<lt>closeparen<gt><comma>%H%M%S%z<backslash><quote><quote>%<backslash><quote><quote>%Y%m%d%H%M%S<lt>space<gt><lt>openparen<gt>FME<lt>space<gt>datetime<lt>closeparen<gt><comma>%Y%m%d%H%M%S<backslash><quote><quote>%<backslash><quote><quote>%Y%m%d%H%M%S%z<lt>space<gt><lt>openparen<gt>FME<lt>space<gt>datetime<lt>space<gt>with<lt>space<gt>offset<lt>closeparen<gt><comma>%Y%m%d%H%M%S%z<backslash><quote><quote>%<backslash><quote><quote>%Y-%m-%d<lt>space<gt><lt>openparen<gt>ISO<lt>space<gt>date<lt>closeparen<gt><comma>%Y-%m-%d<backslash><quote><quote>%<backslash><quote><quote>%H:%M:%S<lt>space<gt><lt>openparen<gt>ISO<lt>space<gt>time<lt>closeparen<gt><comma>%H:%M:%S<backslash><quote><quote>%<backslash><quote><quote>%H:%M:%S%Ez<lt>space<gt><lt>openparen<gt>ISO<lt>space<gt>time<lt>space<gt>with<lt>space<gt>offset<lt>closeparen<gt><comma>%H:%M:%S%Ez<backslash><quote><quote>%<backslash><quote><quote>%Y-%m-%dT%H:%M:%S<lt>space<gt><lt>openparen<gt>ISO<lt>space<gt>datetime<lt>closeparen<gt><comma>%Y-%m-%dT%H:%M:%S<backslash><quote><quote>%<backslash><quote><quote>%Y-%m-%dT%H:%M:%S%Ez<lt>space<gt><lt>openparen<gt>ISO<lt>space<gt>datetime<lt>space<gt>with<lt>space<gt>offset<lt>closeparen<gt><comma>%Y-%m-%dT%H:%M:%S%Ez<backslash><quote><quote>%<backslash><quote><quote>%Y-W%W-%u<lt>space<gt><lt>openparen<gt>ISO<lt>space<gt>week<lt>closeparen<gt><comma>%Y-W%W-%u<backslash><quote><quote>%<backslash><quote><quote>%Y-%j<lt>space<gt><lt>openparen<gt>ISO<lt>space<gt>ordinal<lt>space<gt>date<lt>closeparen<gt><comma>%Y-%j<backslash><quote><quote>%<backslash><quote><quote>%Y:%m:%d<lt>space<gt>%H:%M:%S<lt>space<gt><lt>openparen<gt>Exif<lt>space<gt>datetime<lt>closeparen<gt><comma>%Y:%m:%d%H:%M:%S<backslash><quote><quote>%<backslash><quote><quote>%d<solidus>%m<solidus>%Y<backslash><quote><quote>%<backslash><quote><quote>%d.%m.%Y<backslash><quote><quote>%<backslash><quote><quote>%B<lt>space<gt>%e<lt>comma<gt><lt>space<gt>%Y<backslash><quote><quote>%<backslash><quote><quote>%b-%e-%Y<backslash><quote><quote>%<backslash><quote><quote>%I:%M:%S%p<backslash><quote><quote>%<backslash><quote><quote>%s<lt>space<gt><lt>openparen<gt>Epoch<lt>space<gt>Time<lt>closeparen<gt><comma>%s<backslash><quote><quote>%<backslash><quote><quote>%Es<lt>space<gt><lt>openparen<gt>Unzoned<lt>space<gt>Epoch<lt>space<gt>Time<lt>closeparen<gt><comma>%Es<backslash><quote><quote><quote><quote><space>Date<space>Output<space>Format<quote><comma>ISO,WRITER_DEF_LINE_TEMPLATE,<opencurly>FME_GEN_GROUP_NAME<closecurly><comma>csv_existing_file_handling<comma>Yes<comma>csv_write_field_names<comma>firstrow<comma>csv_date_output_format<comma>ISO,WRITER_FORMAT_PARAMETER,ADVANCED_PARMS<comma><quote>CSV2_OUT_QUALIFY_FIELD_NAMES<space>CSV2_OUT_QUALIFY_FIELD_VALUES<space>CSV2_OUT_FIELD_QUALIFIER_CHARACTER<space>CSV2_OUT_FIELD_QUALIFIER_ESCAPE_CHARACTER<space>CSV2_OUT_ROW_TERMINATION<space>CSV2_OUT_WRITE_SCHEMA_FILE<space>CSV2_OUT_EXISTING_SCHEMA_FILE_HANDLING<quote><comma>DEFAULT_ATTR_TYPE<comma>string<comma>FEATURE_TYPE_NAME<comma><quote>CSV<space>File<quote><comma>FEATURE_TYPE_DEFAULT_NAME<comma>File1<comma>READER_DATASET_HINT<comma><quote>Select<space>the<space>CSV<space>file<openparen>s<closeparen><quote><comma>WRITER_DATASET_HINT<comma><quote>Specify<space>a<space>folder<space>for<space>the<space>CSV<space>file<quote><comma>ATTRIBUTE_READING<comma>DEFLINE,WRITER_FORMAT_TYPE,DYNAMIC,WRITER_HAS_DEFLINE_ATTRS,yes,WRITER_USES_DEF,yes" }    WRITER_FEATURE_TYPES { "lookuptable:Output,ftp_feature_type_name,lookuptable,ftp_writer,CSV2,ftp_dynamic_schema,no,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_schema_sources,<lt>lt<gt>Unused<lt>gt<gt>,ftp_attribute_source,1,ftp_user_attributes,SOURCE<comma>varchar<lt>openparen<gt>200<lt>closeparen<gt><comma>DESTINATION<comma>varchar<lt>openparen<gt>200<lt>closeparen<gt>,ftp_user_attribute_values,<comma>,ftp_format_parameters,csv_dataset_group<comma><comma>csv_existing_file_handling<comma>Yes<comma>csv_fields_group<comma><comma>csv_write_field_names<comma>firstrow<comma>csv_types_group<comma><comma>csv_date_output_format<comma>ISO" }    WRITER_PARAMS { "ADVANCED_GROUP,,COORDINATE_DETECTION_MODE,automatic,COORDINATE_FIELDS_FROM_GEOM_GROUP,YES,COORDINATE_SYSTEM,,COORDINATE_SYSTEM_GRANULARITY,FEATURE_TYPE,DATASET_GROUP,,DELIMITER,<lt>comma<gt>,ENCODING,UTF-8,ENCODING_GROUP,,EXISTING_FILE_HANDLING,Yes,EXTENSION,csv,FIELD_QUALIFIER_CHARACTER,<lt>quote<gt>,FIELD_QUALIFIER_ESCAPE_CHARACTER,<lt>quote<gt>,FIELDS_GROUP,,QUALIFY_FIELD_NAMES,if_needed,QUALIFY_FIELD_VALUES,if_needed,ROW_TERMINATION,System,SPATIAL_GROUP,,TREAT_EMBEDDED_FIELD_QUALIFIERS_AS_UNSAFE,Yes,WRITE_BOM_FOR_UNICODE,Yes,WRITE_FIELD_NAMES,firstrow,WRITE_SCHEMA_FILE,NO" }    DATASET_ATTR { "_dataset" }    FEATURE_TYPE_LIST_ATTR { "_feature_types" }    TOTAL_FEATURES_WRITTEN_ATTR { "_total_features_written" }    OUTPUT_PORTS { "" }    INPUT Output FEATURE_TYPE AttributeManager_2_OUTPUT  @FeatureType(ENCODED,@EvaluateExpression(FDIV,STRING_ENCODED,lookuptable,FeatureWriter))    OUTPUT { SUMMARY FEATURE_TYPE FeatureWriter_SUMMARY        }
# -------------------------------------------------------------------------
MACRO FeatureReader_OUTPUT_PORTS_ENCODED 
MACRO FeatureReader_DIRECTIVES COORDINATE_SYSTEM,,EXPOSE_ATTRS_GROUP,,GENERIC_EXPOSE_FORMAT_ATTRS,,REAL_FORMAT,GUESS_FROM_EXTENSION,SPATIAL_GROUP,
# Always provide an INTERACTION, otherwise the factory defaults to ENVELOPE_INTERSECTS
INCLUDE [if { ( {NONE} == {<Unused>} ) || ( {($INTERACT)} == {} ) } {             puts {MACRO FCTQUERY_INTERACTION_LINE FCTQUERY_INTERACTION NONE};          } else {             puts {MACRO FCTQUERY_INTERACTION_LINE FCTQUERY_INTERACTION "NONE"};          }         ]
# Consolidate the attribute merge options to what the factory expects
DEFAULT_MACRO FeatureReader_COMBINE_ATTRS
INCLUDE [       if { {RESULT_ONLY} == {MERGE} } {          puts "MACRO FeatureReader_COMBINE_ATTRS <Unused>";       } else {          puts "MACRO FeatureReader_COMBINE_ATTRS RESULT_ONLY";       };    ]
INCLUDE [    puts {DEFAULT_MACRO FeatureReaderDataset_FeatureReader @EvaluateExpression(FDIV,STRING_ENCODED,$(SourceDataset_GENERIC$encode),FeatureReader)}; ]
FACTORY_DEF {CONNECTED} CreationFactory    FACTORY_NAME { FeatureReader_Creator }    OUTPUT { FEATURE_TYPE FeatureReader_____CREATED______ }
FACTORY_DEF {*} QueryFactory    FACTORY_NAME { FeatureReader }    INPUT { FEATURE_TYPE FeatureReader_____CREATED______ }    INPUT INITIATOR FEATURE_TYPE FeatureWriter_SUMMARY    $(FCTQUERY_INTERACTION_LINE)    CLIP_TO_INITIATOR_ENVELOPE { "NO" }    COMBINE_ATTRIBUTES  { $(FeatureReader_COMBINE_ATTRS) }    IGNORE_NULLS        { <Unused> }    REJECT_POINTS       { YES }    QUERYFCT_ATTRIBUTE_PREFIX { <Unused> }    COMBINE_GEOMETRY    { RESULT_ONLY }    ENABLE_CACHE        { NO }    QUERYFCT_TABLE_SEPARATOR { SPACE }    READER_TYPE         { GENERIC  }    READER_DATASET      { "$(FeatureReaderDataset_FeatureReader)" }    QUERYFCT_IDS        { "" }    QUERYFCT_IDS_FORMAT WWJD_PARTS    READER_DIRECTIVES   { METAFILE,GENERIC }    QUERYFCT_OUTPUT     { "BASED_ON_CONNECTIONS" }    QUERYFCT_ADD_SCHEMA { "NO" }    QUERYFCT_USE_SCHEMA_CACHE { "YES" }    QUERYFCT_INITIATOR_FIRST_OUTPUT { "default" }    QUERYFCT_DEDUPE_GEOM YES    CONTINUE_ON_READER_ERROR YES    ORDER_RESULTS { "No" }    QUERYFCT_RESULT_TAGS { $(FeatureReader_OUTPUT_PORTS_ENCODED) }    QUERYFCT_SET_FME_FEATURE_TYPE YES    QUERYFCT_SET_FME_META_ATTRS YES    READER_PARAMS_WWJD     { $(FeatureReader_DIRECTIVES) }    TREAT_READER_PARAM_AMPERSANDS_AS_LITERALS YES    HONOR_INITIATOR_COORDSYS YES    OUTPUT { RESULT FEATURE_TYPE FeatureReader_<OTHER>           }    OUTPUT { READER_ERROR FEATURE_TYPE FeatureReader_<REJECTED>           }
DEFAULT_MACRO _WB_BYPASS_TERMINATION No
FACTORY_DEF * TeeFactory FACTORY_NAME FeatureReader_<Rejected> INPUT FEATURE_TYPE FeatureReader_<REJECTED>  NO_LOGGING   OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, FeatureReader<space>output<space>a<space><lt>Rejected<gt><space>feature.<space><space>To<space>continue<space>translation<space>when<space>features<space>are<space>rejected<comma><space>change<space><apos>Workspace<space>Parameters<apos><space><gt><space>Log<space>and<space>Troubleshoot<space><gt><space><apos>Rejected<space>Feature<space>Handling<apos><space>to<space><apos>Continue<space>Translation<apos>)
# -------------------------------------------------------------------------
MACRO SchemaMapper_DIRECTIVES ADVANCED_GROUP "" BUILD_POINTS_GROUP NO CASE_SENSITIVE_FIELD_NAMES Yes CHUNK_SIZE 100000 CSV2_EXPOSE_FORMAT_ATTRS "" DATA_START_LINE 2 DATASET_GROUP "" DATE_INPUT_FORMAT ISO DELIMITER auto DELIMITER_DETECTION_ALGORITHM EQUAL_FIELDS_PER_LINE ENCODING windows-1252 ENCODING_GROUP "" ENFORCE_STRICT_SCHEMA No EXPLICIT_GEOMETRY_ATTRIBUTES Yes EXPOSE_ATTRS_GROUP "" FEATURE_TYPE_NAME FORMAT_NAME FIELD_NAMES_GROUP "" FIELD_NAMES_LINE 1 FIELD_QUALIFIER_CHARACTER <quote> FIELD_QUALIFIER_ESCAPE_CHARACTER <quote> FIELD_SEPARATION_GROUP "" FIELD_VALUES_GROUP "" FIELDS_GROUP "" PRESERVE_SOURCE_ENCODING No PREVIEW_PLACEHOLDER "" QUERY_FEATURE_TYPES_FOR_MERGE_FILTERS Yes READ_EMPTY_VALUES_AS Null READ_SKIPPED_LINES No REPLACE_ATTR_NAME_INVALID_CHARS No SCAN_ADDITIONAL_FIELDS No SCAN_MAX_ROWS 250000 SCAN_TYPES Yes SCHEMA "" SCHEMA_GENERATION_GROUP "" SKIP_DUPLICATE_DELIMITERS No SKIPPED_LINES_GROUP "" SPATIAL_GROUP "" STRING_TYPE_ATTRIBUTE_HANDLING EXPLICIT_WIDTH SUPPORTED_READER_ARCHIVE_EXTENSIONS csv.gz,txt.gz TRIM_FEATURE_TYPE_NAME Yes TRIM_FIELD_NAME_QUALIFIERS Yes TRIM_FIELD_NAME_WHITESPACE Yes TRIM_FIELD_VALUE_QUALIFIERS Yes TRIM_FIELD_VALUE_WHITESPACE No TYPE_ATTRIBUTE_HANDLING STANDARD_TYPES USE_CUSTOM_SCHEMA NO
FACTORY_DEF {*} SchemaMappingFactory    FACTORY_NAME { SchemaMapper_Mapper }    INPUT  FEATURE_TYPE FeatureReader_<OTHER>    PRESERVE_FEATURE_ORDER { PER_OUTPUT_PORT }    DB_TYPE { CSV2 }    DB_DATASET { "$(LUTPATH)" }    DB_TABLE { "CSV" }    DB_DIRECTIVES { $(SchemaMapper_DIRECTIVES) }    FILTER_COLUMNS {  }    INDEX_MAPPING_COLUMNS { "" "" fme_feature_type fme_feature_type }    ATTR_MAPPING_COLUMNS { SOURCE DESTINATION $(FME_ASC_16) }    ROW_ID_ATTR { _schemamapper_row_ids }    EXPR_PREFIX { fmeexpression= }    OUTPUT { MAPPED FEATURE_TYPE SchemaMapper_MAPPED         }
# -------------------------------------------------------------------------
# Build the List removal function and regular expression if there was any list attributes to be removed.
# If not, then we will not have any extra list removal call to @RemoveAttributes, which speeds the
# normal, non-list removal especially when in Bulk Mode.  Note that this computation of the regular expressions is done
# once during mapping file parse time.
INCLUDE [    set listAttributeRemoveRegexps {};    set anyList {no};    foreach attr [split ""] {       set attr [FME_DecodeText $attr];       set attr [regsub "{}$" $attr "{}.*"];       set attr [regsub -all "{}" $attr "\\{\[0-9\]+\\}"];       append listAttributeRemoveRegexps ",^$attr$";       set anyList {yes};    };    if { ${anyList} == {no} } {        puts {MACRO AttributeRemover_LIST_FUNC }    } else {        puts "MACRO AttributeRemover_LIST_FUNC @RemoveAttributes(fme_pcre_match\"$listAttributeRemoveRegexps\")"    }; ]
FACTORY_DEF {*} TeeFactory    FACTORY_NAME { AttributeRemover }    INPUT  FEATURE_TYPE SchemaMapper_MAPPED    OUTPUT { FEATURE_TYPE AttributeRemover_OUTPUT        @RemoveAttributes(fme_encoded,_schemamapper_row_ids)        $(AttributeRemover_LIST_FUNC)         }
# -------------------------------------------------------------------------
INCLUDE [    set dateTimeFormat FME;    set fixDateAttrs No;    switch NO_DATE {       NO_DATE                    { set dateTimeFormat <Invalid>; }       DATE_TIME_ATTRIBUTE_FORMAT { set dateTimeFormat {<Unused>};                                    set fixDateAttrs Yes; }    };    puts "MACRO SSFACT_DATE_TIME_ATTRIBUTE_FORMAT $dateTimeFormat";    puts "MACRO SSFACT_FIX_DATE_ATTRS $fixDateAttrs";    ;    set inferEmptySchema No;    set scanEmptyAttributes No;    switch IGNORE {       IGNORE              {}       SCANNER_DEFAULT     { set scanEmptyAttributes Yes; }       INFER_EMPTY_SCHEMA  { set inferEmptySchema Yes; }    };    puts "MACRO SSFACT_INFER_EMPTY_SCHEMA $inferEmptySchema";    puts "MACRO SSFACT_SCAN_EMPTY_ATTRIBUTES $scanEmptyAttributes"; ]
FACTORY_DEF {*} SchemaScannerFactory    FACTORY_NAME { SchemaScanner }    COMMAND_PARM_EVALUATION SINGLE_PASS    INPUT  FEATURE_TYPE AttributeRemover_OUTPUT    FLUSH_WHEN_GROUPS_CHANGE { <Unused> }    SCHEMA_FEATURES_FIRST { Yes }    SCHEMA_DEF_NAME_ATTR { "fme_feature_type_name" }    IGNORE_ATTRIBUTES_CONTAINING_REGEX { ^fme_|^multi_ }    IGNORE_ATTRIBUTES_CASE_SENSITIVE { No }    INCLUDE_FORMAT_ATTRIBUTES { No }    COERCE_CHAR_TO_VARCHAR { Yes }    FIX_DATE_ATTRS { $(SSFACT_FIX_DATE_ATTRS) }    INFER_EMPTY_SCHEMA { $(SSFACT_INFER_EMPTY_SCHEMA) }    TEMPLATE_SCHEMA {  }    TYPE_OPTIONS { SCAN_USE_UNBOUNDED_STRINGS=No                   SCAN_USE_UNBOUNDED_TYPES=Yes                   SCAN_PREFER_UNSIGNED_TYPES_FOR_INTEGERS=Yes                   SCAN_FOR_DATE_ATTRIBUTES=Yes                   SCAN_FORCE_DATETIME=No                   SCAN_EMPTY_ATTRIBUTES=$(SSFACT_SCAN_EMPTY_ATTRIBUTES);                   SCAN_FOR_DATE_ATTRIBUTE_FORMAT=$(SSFACT_DATE_TIME_ATTRIBUTE_FORMAT)                   SCAN_ALLOW_NUMERIC_LEADING_ZEROES=Yes }    OUTPUT { SCANNED FEATURE_TYPE SchemaScanner_Output        }    OUTPUT { SCHEMA FEATURE_TYPE SchemaScanner_<SCHEMA>           }    OUTPUT { REJECTED FEATURE_TYPE SchemaScanner_<REJECTED>        }
DEFAULT_MACRO _WB_BYPASS_TERMINATION No
FACTORY_DEF * TeeFactory FACTORY_NAME SchemaScanner_<Rejected> INPUT FEATURE_TYPE SchemaScanner_<REJECTED>  NO_LOGGING   OUTPUT FAILED FEATURE_TYPE * @Abort(ENCODED, SchemaScanner<space>output<space>a<space><lt>Rejected<gt><space>feature.<space><space>To<space>continue<space>translation<space>when<space>features<space>are<space>rejected<comma><space>change<space><apos>Workspace<space>Parameters<apos><space><gt><space>Log<space>and<space>Troubleshoot<space><gt><space><apos>Rejected<space>Feature<space>Handling<apos><space>to<space><apos>Continue<space>Translation<apos>)
# -------------------------------------------------------------------------
INCLUDE [    puts {DEFAULT_MACRO FeatureWriterDataset_FeatureWriter_2 @EvaluateExpression(FDIV,STRING_ENCODED,$(Mapped_Output$encode)<solidus>mapped_dataset.json,FeatureWriter_2)}; ]
FACTORY_DEF {*} WriterFactory    COMMAND_PARM_EVALUATION SINGLE_PASS    FEATURE_TABLE_SHIM_SUPPORT INPUT_SPEC_ONLY    FLUSH_WHEN_GROUPS_CHANGE { <Unused> }    FACTORY_NAME { FeatureWriter_2 }    FACTORY_CONFIG_PARAMETERS { ESCAPE_COMMAS_IN_FTP_FORMAT_PARAMETERS,no }    WRITER_TYPE { GEOJSON }    WRITER_DATASET { "$(FeatureWriterDataset_FeatureWriter_2)" }    WRITER_SETTINGS { "RUNTIME_MACROS,WRITER_CHARSET<comma>UTF-8<comma>WRITE_BOM<comma>No<comma>FILE_STRUCTURE<comma>SINGLE_FEATURE_COLLECTION<comma>WRITE_FEATURE_IDS<comma>Yes<comma>WRITE_NESTED<comma>YES<comma>PRETTY_PRINT<comma>YES<comma>INDENT_SIZE<comma>0<comma>SPATIAL_GROUP<comma><comma>COORDINATE_SYSTEM<comma><comma>MAX_COORDINATE_PRECISION<comma>10<comma>COUNTER_CLOCKWISE_AREAS<comma>Yes<comma>WGS84_REPROJECTION<comma>Yes<comma>DESTINATION_DATASETTYPE_VALIDATION<comma>Yes<comma>NETWORK_AUTHENTICATION<comma>,METAFILE,GEOJSON" }    WRITER_METAFILE { "ATTRIBUTE_CASE,ANY,ATTRIBUTE_INVALID_CHARS,,ATTRIBUTE_LENGTH,600,ATTR_TYPE_MAP,string<comma>fme_buffer<comma>string<comma>fme_binarybuffer<comma>string<comma>fme_xml<comma>string<comma>fme_varchar<openparen>width<closeparen><comma>string<comma>fme_varbinary<openparen>width<closeparen><comma>boolean<comma>fme_boolean<comma>string<comma>fme_char<openparen>width<closeparen><comma>string<comma>fme_binary<openparen>width<closeparen><comma>string<comma>fme_datetime<comma>string<comma>fme_time<comma>string<comma>fme_date<comma>float<comma>fme_real64<comma>float<comma>fme_real32<comma>int<comma>fme_int64<comma>string<comma>fme_uint64<comma>int<comma>fme_int32<comma>int<comma>fme_uint32<comma>int<comma>fme_int16<comma>int<comma>fme_uint16<comma>int<comma>fme_int8<comma>int<comma>fme_uint8<comma>string<comma><quote>fme_decimal<openparen>width<comma>decimal<closeparen><quote><comma>json<comma>fme_json,DEST_ILLEGAL_ATTR_LIST,,FEATURE_TYPE_CASE,ANY,FEATURE_TYPE_INVALID_CHARS,,FEATURE_TYPE_LENGTH,0,FEATURE_TYPE_LENGTH_INCLUDES_PREFIX,false,FEATURE_TYPE_RESERVED_WORDS,,FORMAT_METAFILE,$(FME_HOME_ENCODED)metafile<backslash>GEOJSON.fmf,FORMAT_NAME,GEOJSON,GEOM_MAP,json_point<comma>fme_point<comma>json_line<comma>fme_line<comma>json_polygon<comma>fme_polygon<comma>json_text<comma>fme_text<comma>json_ellipse<comma>fme_ellipse<comma>json_arc<comma>fme_arc<comma>json_rectangle<comma>fme_rectangle<comma>json_rounded_rectangle<comma>fme_rounded_rectangle<comma>json_raster<comma>fme_raster<comma>json_no_geom<comma>fme_no_geom<comma>json_collection<comma>fme_collection<comma>json_line<comma>fme_surface<comma>json_line<comma>fme_solid<comma>json_polygon<comma>fme_point_cloud<comma>json_polygon<comma>fme_voxel_grid,READER_ATTR_INDEX_TYPES,,READER_FORMAT_TYPE,,READER_USES_DEF,yes,SOURCE,no,SUPPORTS_FEAT_TYPE_FANOUT,yes,SUPPORTS_MULTI_GEOM,yes,WORKBENCH_CANNED_SCHEMA,,WRITER,GEOJSON,WRITER_ATTR_INDEX_TYPES,,WRITER_DEFLINE_PARMS,,WRITER_DEF_LINE_TEMPLATE,<opencurly>FME_GEN_GROUP_NAME<closecurly>,WRITER_FORMAT_PARAMETER,MIME_TYPE<comma><quote>application<solidus>geo+json<space>ADD_DISPOSITION<quote><comma>WRITER_SPATIAL_DEFINITION_TABLE<comma>YES<comma>READER_DATASET_HINT<comma><quote>Select<space>the<space>GeoJSON<space>file<openparen>s<closeparen><space>or<space>type<space>the<space>GeoJSON<space>URL<quote><comma>WRITER_DATASET_HINT<comma><quote>Specify<space>a<space>name<space>for<space>the<space>GeoJSON<space>file<quote>,WRITER_FORMAT_TYPE,,WRITER_HAS_DEFLINE_ATTRS,yes,WRITER_USES_DEF,yes" }    WRITER_FEATURE_TYPES { "<at>Value<openparen>fme_feature_type<closeparen>:Output,ftp_feature_type_name_exp,<at>Value<openparen>fme_feature_type<closeparen>,ftp_writer,GEOJSON,ftp_dynamic_schema,yes,ftp_dynamic_feature_type_name_type,DYN_SCHEMA_PROP_AUTO,ftp_dynamic_geometry_type,DYN_SCHEMA_PROP_FIXED,ftp_dynamic_schema_def_name_type,DYN_SCHEMA_PROP_FROM_ATTRIBUTE,ftp_dynamic_schema_sources,SCHEMA_FROM_FIRST_FEATURE,ftp_dynamic_schema_def_name,<at>Value<openparen>fme_feature_type_name<closeparen>,ftp_attribute_source,2,ftp_uses_spatial_definition,yes,ftp_spatial_definition,geom_name<comma><comma>geom_string<comma><comma>spatial_type<comma>" }    WRITER_PARAMS { "COORDINATE_SYSTEM,,COUNTER_CLOCKWISE_AREAS,Yes,DESTINATION_DATASETTYPE_VALIDATION,Yes,FILE_STRUCTURE,SINGLE_FEATURE_COLLECTION,INDENT_SIZE,0,MAX_COORDINATE_PRECISION,10,NETWORK_AUTHENTICATION,,PRETTY_PRINT,YES,SPATIAL_GROUP,,WGS84_REPROJECTION,Yes,WRITE_BOM,No,WRITE_FEATURE_IDS,Yes,WRITE_NESTED,YES,WRITER_CHARSET,UTF-8" }    DATASET_ATTR { "_dataset" }    FEATURE_TYPE_LIST_ATTR { "_feature_types" }    TOTAL_FEATURES_WRITTEN_ATTR { "_total_features_written" }    OUTPUT_PORTS { "" }    INPUT Output FEATURE_TYPE SchemaScanner_Output  @SupplyAttributes(ENCODED,fme_template_feature_type,Output)  @FeatureType(ENCODED,@EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>fme_feature_type<closeparen>,FeatureWriter_2))    INPUT Output FEATURE_TYPE SchemaScanner_<SCHEMA>  @SupplyAttributes(ENCODED,fme_template_feature_type,Output)  @FeatureType(ENCODED,@EvaluateExpression(FDIV,STRING_ENCODED,<at>Value<openparen>fme_feature_type<closeparen>,FeatureWriter_2))
# -------------------------------------------------------------------------

FACTORY_DEF * RoutingFactory FACTORY_NAME "Destination Feature Type Routing Correlator"   COMMAND_PARM_EVALUATION SINGLE_PASS   INPUT FEATURE_TYPE *   FEATURE_TYPE_ATTRIBUTE __wb_out_feat_type__   OUTPUT ROUTED FEATURE_TYPE *    OUTPUT NOT_ROUTED FEATURE_TYPE __nuke_me__ @Tcl2("FME_StatMessage 818059 [FME_GetAttribute fme_template_feature_type] 818060 818061 fme_warn")
# -------------------------------------------------------------------------

FACTORY_DEF * TeeFactory   FACTORY_NAME "Final Output Nuker"   INPUT FEATURE_TYPE __nuke_me__

