Description: fcl-js,json,css,web and other webtechnologies
This file as text.
(active) Revisions in this set:
8bc2326b772fb85d3fbd297582a04d9008c34d60,82346563c118fa536cdc0b5472be1f2be0e74c6f,5515b62c9e803da400a307cb68dc72e8503c37a8
ac9d2b3cc5d8eaf34ea5aa3cb89cd850607be49c,6db4ab5012c6a32a4c66da973e0b7e7163b54503,20039e3b77a094ea807ccb318e06df4cce4dcacd
fd91e8263c8acc492a928027b55ed8d44ffa83f9,52813c8965efe348a94bee65ebceb9bc0e81be76,1e3de5db58072959e8d6f75aaa21e922d38f322e
8cdbf5887b7cf1bd5a17dcf0c406e52fd6b27d4a,7fbc82a9ffd9fda11f0643f32dcfd675de7a53a4,9d9128a747adcbdc2a7a3fafb17237f895dbff21
162ecdc543f8022f77bac46223537ece7cbc4188,8bf5eb83229a05e2c630bc4015b9c622ff8e48df,eaffd1deca89d08f780f34c7788c28a0ac49b939
c67a44c07a699e9c70b71f28370f875e1e010bb1,676c9a7bf6e181662c5838ced35d0326fe5da564,722a37ab2f8b008c750a4a143d49aae8563032cd
bf2e3bf51a1e9a5c2156edf112fbb8a83aabe42c,af47d108af4e289f6018b2a386b9c96b2a65c12d,6a2f596b8eb7efa8fb672451a7afe0a00b5a03e9
da10b8141c184e592b1d8d4ab65d675c0755fbcc,c4e20291797583b2d172f804c0c684747279e70a,52c00037d3600f819bd8495b470c06a2f026dc10
7ccdcd3d14a35c350c5463d2488906f66d26163a,8fc1bc276f14fd1deadf250385c408b0973074a7,964a9839d1ed9a4fe9400ec95ef0a0db563f0659
410916ab6bfad9c66f396fb94fef0a256f9610a6,ae1c809a2de4d326571b2f086854feb70c35fdae,c68c22e9e88413abd80866aa3293e553fb0c5b95
ed861e5343dba6e3e10d75a6db8919deaf4b350f,c64c0e617d070de85b11e171d895886c064b1bec,5479663e560bbe906bf05274b74cd168dac41627
675312c201c678c8446482f7e53b1209684b45bd,d502a38f2044a641fac2eb94501f1b49d3b698a5,fdaa1a12d03ab0af27d783a6ebd8c989673f145b
40c359a5510fdbda573a1eb75a50977382f0996d,f6c476ae79112ef1866dab22cee7c307fc8ec98f,5bf9de22d696143e5e25a350cf407312603d183e
f7265bf79e0945845c2b3e9472de654b5a2c9c35,181653162cfa3807e9077176b73800231c40d808,db0d1501e0bfe9166e94f8eb0204b31023f92940
aa9ff6c225997c84ded257d33219b60374470786,ab7de664719e8421f17c32307eae700c832f2787,4ac009846c7a61d2a3a9965b6e6fc7257691d427
a68a6415f2f559afbde579f1333043090ff5db8d,bb9a1af24849031928f0db2ddfbd1991f91792bc,e6f40c196a4a76aeda73632a67eff84f56c2d7bb
4697de93793690818baef08586f3f06cf6c776b6,5d9968366bb9b52fda32bc3b99fc18b0383f5f42,9b8a6438c786637768ad435c10f5cf179b0c4760
bfa0c60e7725ed63f2148de95c4651541716515b,56c3b5b2cd0acd8f0aa531049f7d5b5fc86849e6,df6d2896931c1f7b9bf9f7b401109bc61dc0fdc6
f6587d950520e36b23d412c1b370b861e21e62a6,54e418c5e87435e6e1889d755c499da4554a1562,14dd15373670d02e90897601df347344a3dee709
1083746abf9bd7ec09161cc0819d7ef5c5541d1e,35c45dfbe5a1f1d732071ee4e812684ed1a8e58b,ae0cf1b50fc3f480dbed602d27174f84b77b8ec9
8c5446a03ff70d74427b933ca13c9519e141c0ff,54e0d972783824a2172596154f73bea1d3481944,5dc1d5e93b04b6a5d0afe4260fa2b40278ec0f0d
955e495c217fa558e713aa82cab81ddf7f3c4ea6,ccfb34c518291419b1ba48edbf651335b8d4f8ac,008214ca15812e7f4db97cc9e1ffadce94d68d2d
84c2a0d89e1de298659b7e54ed7cf1b589493839,7ef2012151438c314d82b279c06939140dbf0c41,cb73bb939bc433b9ce5137492fc69a6b5d993b7e
f9c006ca9f5eff265bf1fdba8697e58a1d09a1ef,66a1486f325f7404ddc3679422366fc020185525,a390a2742024ea5a1820ea20ada0ba0ca325111d
4dc1e22f1f8a8d1bf150c3ed1ebb6498439909d2,a206deddfb5f6b634e5da5a7925c1f867d61eda9,886baf4cb901337929a5bbc7a21510835c089b41
06ab6d7fa71af5b4f14a4a31b9d5dfa74c3a4ea3,bfc5fcb8d15ac2ce9dfcafc7cefe67b387b7fc8b,985ebf3b6360c2850b38ccab36aee38828146843
a2146824956673e5e356da1b3f1429d73e5ebd36,652643499a88e937c4fbaf95169013339b207052,6a9d2cae93de921b982958cbab49ac5ddf64aa58
54415f8f4e0458ae2ab2fb7d0b4ed97e8461cb7d,2650049b2cb15178fddf77cacc477d910a5b5df0,86d48207605bea3e2c72bf3734666999dfef14d8
7c6f3810e3e73c4219e6f6f24bdf702c61843d13,dcf64d8fee683749998f54710fbebe4453f47906,239557237fa4351aa0b35a0d2dc246b86d8d6334
ef0aea8ca241aa5d021d74efa830e690ca447bb9,9653406ac6c2633ac2ee2b12ee857beeed5efeeb,b08c12ff8ab31b63044bb03ef025dc3c175648a0
711e659f5c91098da657ac2f9dcb4cb52f14a937,8a0fe7bc855ef5b4d17ee674c94bca42fa7719d9,cc8f8dbde854bd3e6ae8663949660924817bb44b
93b3315691f3e89843c8c16edb9c0b22226a51d7,b8102dcdc0e24bd7f7488ad731e330828ce32939,4546673a33b7f31056a5cde492b080b8dd56435e
afa1a549acfdfed6768edaa710258230b70e497c,0327a4a04ec16d2d8bafb50d6ddb3c5ce93ce0d3,65101b36dca4a4b8019f2c47944ec81e3988daae
fa9d77e67ee7235fb02b3a6c7576eee573fbc332,03b3f00a0b62488697aab90a5fe362b3053ffc59,4c6cbfe03edaced0be3e1477f48f6d7b927ba858
fd29f25bf1678ba50adb3c8af2717b6782d03b8b,87a785daa07a0375d3271102dadf105aec8e7d43,bd777877124f84665d133944b585e1708b7c7c29
ebd7bb7cb9179937428809e2337f79153ab5bcdb,11d2960db868d02757ae8810018dc661db034fe6,d362d47e88aa2dddbcd35c371a92e5014cca5a02
8a63e7ee5a34f8dfe2f412fd218dbea3d3df9e73,8360b180972a70af23e57128fe54bc0e451b481e,b46f361d91683b19af2ba8ef60826e47b2643126
2be3978bb446ced6857ab18fe0cd186f6fafe217,7d4844919bdb8776c21da2822effe27873885eaa,baec255bbc8fc6eb7378c142148fa375398e35bc
12616f657973a62154454c10ddf1b1396b808ca1,2f23239ebd4719b743e8b7549e30639c9479faaf,c9b988e146512169f283172b60cd97b278fcfcfb
60a09b65f4d23ebc2a5315cc530cf271c2b3cc58,73529f5266940b416f6c943e1c372e1a1454f034,045472a5e7e2535a449abf8f38e3888789db48dc
749c8110b6a41765f5548efa76e4565a9b7e29e7,9e710e298c5952cee4fae64d2408038cda4a1298,ebdb90b1a5788b56d4a0396cef9a0f83c40b04ab
8362ee0e5f818a1b5ddb2d0b090676d412ceb360,b2f46586bc891aeb335b4b8ddac048fa0d204cbd,aa82a2e446bfe225d41400d5784a1092ca905754
a5811a35a91f955918edf249650b67fd7d8e3dad,58e9d7c6477268f6e55629cbe45264631243644b,07d298d23b8216d64dedb129267a667272e49d22
2460ecb9d9918929c7b3b0e41367811072ab04fb,09b763c698a783efadecf81dbfffe6730d9fd2d0,11ac750e873d31738c2bb344e5e216192c8045e3
f3a0bdd23222cf281539ec545e4185b971e357a2,5a9021c14c39c376b2cf1967989482f0f6bdb4b0,544b58680e3afb95bcf6344daa775a431c1195cd
8386906668afeebf9a06bfd723981b23bd049a28,6347c9d03cc141ac939d09df8d90a35b70e171ce,091e86082dd1043d26fc1be9d1607ed544bb3da0
54efcc4bbb79d54d69395782ca00019b36e3cb4c,bef4da339abfd785ccded8821539ac0f8d946bfe,52334737489c37e2e4a01ab62c982d838d64736c
e298e6eccd378a23540f95d22a0a66be14ecbc4c,32d06f2e87710cf749cab40d520a711ba044d65d,ad971df05a418d04027323d423e9527e6374955b
5bedf92bfba41350e1854b43fa9acee704f871e4,a7951612da74ed7b709dc4b3ebb759eec1da3b2f,ced452e2ef37628854b945de15791f796a52d0e9
4e51973dbaa26581b29ae72d0f345382443205aa,abac7a02bde9cd0bd582e7db028474708b194709,93b8707ed31af9efa328109774c8015a8c32f087
2ec382e68cce7f7fe90c3b4c88b15af79c947d99,7b62186b9c9efddcb0114df889d5830d8634b0bd,925dc4bc7562394c8ea56c3b597c33b0051c551e
3b9035c94638156629666dcdf6e2340db5405809,b2251e34691a63bbb61cfaecd6125db6a51a23c6,d4d55f5c877064220bb13a0123e6e67df7e75237
dea81f4f60174483f0c61a77dfb2a63dc117efb3,3e9ddf59df740d12ff51122bcdcdf1ce20b0cd56,4f8d6c9df1adac8a8175bedc08f72f826245dd06
6b8ab2c4d2a6fdf412fd6e9e16288ca10c81d59c,d36761f4a4dac1f859bfbc12784e6c5a55a5b425,14b40473fc2fcad52fdefa632863b7aa76bb2bf8
9e631db928b5bf3bd379830b9376b31fddc343f0,7f8591926af2de78051f2dbe91ee5d9e64a912b9,5b3953dde37e5802b6417748f633bd9278bf95da
5377cee3a29c267161a8e46aedb04e8e3b91cee5,ee8c3ff3cfd8851111e5094dc6673cd997ddd74c,8b9c7b8254385e5b797cbaa0b73e160a26f5ff77
eccd1720c9812b99e0e70c3e37d3af36051fb7ad,be046aa5558f8ab39441f9270a45f6e3ceb53745,4fae1bb6dfd1d65f8250ef390541647006cd1236
410c1bbaa0211b56076ede5ec0b2c9605c5cba62,56108f479979e7dc9c10dceed5f74870e7d62c79,2b99abdd4df8f3aabe11d2ebe4d1fcbacf37fd5c
aedb6dbacd0ee1d790c4092bef5bf46de0558c07,bf2d0853b60de40b69dbb0efad3617bfb8d2c67d,3c5ad4eadf5afe1fd9afbce8793142d51f2a615c
d309b77b59612157a5a729170791cd9153599be5,7631dfb563f38c9e595de8f50ef96826fabb788d,44902c339b85bd855f65d40836b6aa9f5dc471a1
f0c3d69068b3e9e3156a3b89af62233ed96dc086,bb1b0cdbf0a477f81c30db8ebcd4d989c7d132a3,e339f8b66053c2a35e20e8d71d1b97d2513bd668
37d107a953a30829760954daf9eaad1057648367,120303576b775f666c7e993cba9baf0296d947b3,8851c8968c3490fd48988274e1557e7ebce23808
3ecc1272e09b761fab6a02ba842d7507518ed943,c745e2cfba3dee29c22a28ac313d6776e5118c32,dd6ccd0fb4bf6ed6988ad04fb71ee441a4600438
5700cb56aca837a4ba11b3451ab3630596e98ca9,f2ba814b9e75bfae1aadfcb4fbefb0696f5c8c0d,1b7aefc11df9cf7f034a29c4c372d571ab49e78b
f77bd0226f76b7bccda774c7b09adf42384d6b00,9f7b814747deb93c7d34dcd35f46adeb895e50d5,32c3e6e844c1b305f3c3e1a5c799b7af8bc7ff38
ac6637276b67c6fe377b3566bbd28c49ae3db365,50af4d03888997a768c626627e395cdc76fcba76,7d0d909a741ab29294313af6fe1eea32bd37075a
97f43999367e1e8e2f4ac5acb01963aabde462a0,258b4576a27d5d086c4a5ba33f75c65992b59ecb,a5486e04cd7dac0acdf4efe24129736650154064
d7801027c4abb7e1a53155dba2026a8b90789791,a08ac618a4ca9c5ace5af9c3b3253f11e6aa297c,4503070f7f140a7696fd3b9ac445865b90179d84
0b24d5f92e1995fc6afe2dd72a23c8ace29bebce,87857252a46b212ac383cdd91ce6a028ed9defb1,8ebced609c453363e0168b1d3b6baff393817896
4c9f2b8b25958fb80887205ff74b3df3e4c1c056,1d95e6087a37fb9ef776e4322d351035a63ce909,87ea9a9e0f5cfbaaa4112fb07f728326214d459c
f8bf34303c62190b66f0cacd081a3c0328c13e99,90df440df3f89ef3da3953affa88e13130db30d6,0894b5fd029d8e5a2fba8941d4b8e20466ef0613
ad64eb7af84c366a4b197d981dbec90ba06e22de,0acab89b0b9b7be8451c839a814f70e0a89f91bf,7f4841c76d9e3b3574af03afafa583a6282393de
922210eaa8c6f96a29a909926aa2decad31286d0,73185e89e1e50c0c39f9d08607465c35bb364d5d,76aa9b1f8b23c74a174dc436b3865b7fa5c1d7af
051c5fc7b6f76bdc9f740718f1ff2a48281178cb,4e0b9e85341bcac28c1f146cab638d29390edef8,b6a7504665b4382c0f879dc8d82c0bd4ea4efa41
bc100eda4d4bb811d63a265a4f13bcce76b64fce,e244c7bbb2092db39637c83b34a428631f90a5a7,a40a3ee34dc8d30bf968d5becfc0295b53226025
de586e55c0a5376939753c86787645c84264b44c,d8d5087782a4813cccfccd505b3496b6e78174b8,754a3749ce299d64757e1a9273f3a5e470f90772
72466cac467bbb1da954bd6a5891ed1ae1eacb34,23098d049ddd5f65cef550a478a6734f579f0756,2d1510e067311b17d450b3904b7528cbcd52fdb3
a2c518285c6460734fd700d5d922540db556014a,a6afacd63303bee50cb04ca5d5a13c5c79c8158e,a23a4805f4b8dbf76c6472db14825350341e0405
3e9fd9073fbb232f34b914e8fced3691bfbaa496,a6dd77e32a3e7c802c578890214bc39504e991c2,7ce609e72168df2869aa355afaa22edd4e14ef91
6d104459e2f5857b518f68444b835f1f21dcd586,533d8a775254137e288df31ea99b48676f3faa98,76e0ec6744f8affb72f2c82b61a897facfddab7d
5a7664f7d12a47e9efd859aeeae763460d7d0e62,6454c931b8fa4d8479dbd8c572b3d48356e62134,879b6f1e6e20aaa9be81167eb015d9f1135929fa
8b3c9e0970507bf7cddfe8946032bf9a20ba93aa,569f83e33dd158cd13c338824a8d3179228732a4,f2580efc1585bf5f3810b7b90321bfae3d7d313f
eb17e6fd2d85f700250dcbf721dd41d3bc096b55,27315ac528fb6921a0a66e5d54c36cc3ff9b7200,73e5d6f70fc9354e10d5fa8498fba52dfb024c61
2d94575fa8124933e47924909766b9eaedfc2bba,fb7787b11eef04a5f0f136ecfe83cea67a2e8619,850685844b9a0028b7ef11b4239975ab2a61db45
0a2447a9559f579cdd225603a7a4ece9575f5c28,6685e22ead441cd00e292e6940e2ece96b674fa5,87044c004f22c34457a634074dbd8b253fadaa35
7ee1dea027dc045e8227822987e89db4d592584a,dab6c48b472f83e14173ee55bd3393bbd44222da,56cb11e3efbecf83b509a7709238fa55dc2c6748
6bb59c66cb311a871a7a334362edfa925dac7dc8,029ea37ed940e20e6b491649da808397bb0c96c2,eab28cdd2eb66c32f7e8d6ec186c479d3a70e519
c5f4fe28826b3018bbbff3fa1de3822b35583f3b,a1a30876d596e9bca2a5409b53b0fc637eda5dfd,783bbb66f9324152ba2f2914c8a2a9a1884c37e4
9e5cdc2abeb9de41e630e3aa6fbe197b7d37c0f7,2fc71285f4f709e0ce764dae6616ae67da4056c4,9b58545fb7a244c527ca30f71db7d4f4e4fdc780
9145565895b7b8ea393d1818e9c590cfa6c34cfc,71f8893366881e86e16f15dcb7a4befcd0bd6261,d38c3f8073f8e954b1e0224c5e46141eeae63da5
9cda1666a6129b613770a93799ae57b77630d6c1,af4578f8ca12acd094b39f8a263ea6cbefd3e4d5,d338206814796306ab4dc428f1a398326ee0a4df
9cbcd399b1b95b0357a7dd8964d3200f633c8cd0,44a2d4a1eb57711b0050279cc9f4a5cf558bd38b,a5eba4b14f51a52d4d12fa95dda1a3a920d4088e
bc17da25e17d2c3f980427e3587661da33dda827,125dc64b1eb9883711d84acfa144eb2fcd14fe87,ef4a1c74cb71abe10041522cf1aceb0c6b6d9c45
23d61350bdf694f77ccd3015274d3e24ec20f970,4f054f4097fa0e30083f6e4657867c20e031dde3,546919972600998b4d719f123473cde1d5b4b451
a5f49c1cefffcee2e9552407f428a9d01f79cac2,234a9551258b94eebed481ee535a523597cde7db,535f11886de9ddcc3bb52a38f6d7cae06e557e96
99981040483b28e0ba00379b1fa9b4b0919a731c,cee45ea6fc855ac2bf43f3c373cefb0116c238d6,05f5e9ad12d1d647bc4ea7e50619c48fc8a492d6
fba7595bb1ed577ce67c6a10ba466824e5ee0ee5,3224f2c8b5051b038a43d5a1782177913a633fe4,b56ebfa93d381940ffb31102805afee44b5ae7ba
cf50f8ede09526008682cb308d51a2997cc44d26,5cfaac64d558e549fd16112ec0bf622a409262b0,4c3fae270fab5989675a0234265474f7886d50c2
0e77ef6ebf0f9898b92aee0c8bc7a7573824b96e,cdc6ff0a30253c0745a098a89f22771f3b52b7c4,fc6c3cf487947f4fa07a7255b6e4003b1df0ae99
ffd14f449d554e9c4a8ac67cca773f47a14c9eae,e84e0a16e13a4b73192edafd2aa356254dc2ac88,6e5c5f599e5c8d12a7c8da81f949adf7f61e6916
cb0ed2b6f0f06783a77b505b08a49e817eddd56c,d07e34297f55768911c82fa9690511f7bcb07e80,11cf24891dee700e81bbb9eeca61f867502f6d7b
3cec86390a07ac742c50cf0d4649608fbf09d7c4,8d7a1585d7c0e7c0873f6196288a6e5f8b78972d,f3c74295e26f48dbb7cb062779b0625a89a5ee0f
3f78ba87a3e5435164cc6d300186e3a6569a4510,e1ca68479f39f79a674ecb216eca0752dcdef6b5,f03b0238e08aa72677d0a0fff65c22a96ee5ece9
8dcabc5796aeac40f559cfa2d56c586242100e0d,9acf1921414cef154677d7dbfa444d811e11878f,a35f66a73071c6f985bdb21fcfca4b6e9e629fcd
652f54fe315daf6508b429517c2a2d17f9eb5524,f2696ef1c8986ba154bfad475524e3450b293eaa,3d08253192da985829e5f7fdbb13c58ded3195d7
8bb8e5716eb8b2ba3574369349a0aea2b7c5ee93,c0f9878e2fbc070bbd5db68ae59daff59e6469d7,b6fec2c97e2500795ef626230d0f9c57f292bdc3
6fe22044e7e2eb1950b4aeef5f7efba51663c55b,ce44efdae3c42aa8472a149cd9b93bb1d6dca00e,262904b8c1b8c64801c2a6c24153fe2497f46798
7056ec1a87daa62f01a1834404387e98db43b8a5,add67ca0e3665cdfb6bd5cf5ae1ede76b13df486,dea9aa56a718341d33a4b6257e5351156907e44f
977d123b32a0c36b86b0e91453f8573dfbdb07e3,74e24a38642b79458b6b32d311a30f0d463ce094,3a808074339418e066d2745dd0c3c98b420db259
1df255cddfa3ecb9b48e6142b302bb28c5193510,168b158514f299c709b146d13b583d5a56c5b5d3,337fff51c5314dccc2aef497c5f963b21b4d43ca
4d8af148643005b1b5fcd548d41b1a0b91a42bfc,ce37431a3f57ce11da4e8025a12a0eda3e651ff0,ba15672a4414526fec873833d40d6e7d432e34c9
b84d32fe04fc1b8d18ea0552027a5b8cfb7b30eb,dbb0b013d69e239da8b5fff861b3b0ade0e719c0,73acc393639e81f667b6b981a7c802e306754f77
81a1447b542ff826727ebace6a954c02dbb475e5,9392e62935ceaf9acb8319ca309a7aab55ebfa81,0c3f7bb6645cc2b5122f78fcf12776a1da55ed76
1f4b8a774f82ac843b0b3b09c377e6b22ac0f39a,450f250b2cfb817e39f18d4e0929fe3f14189496,c90503812ab85049c2dd6adfca0b7d81b3932671
859fa9fe8f4d7424b801f310751f52d3f9de2525,5f9bcc2405e1e59f5aaecde252da955b8721e757,bcaae577989d727919bfe5e1f2b2cf9aed394bb6
9ac0a54ad2d05ef79cb6cd3556d5b9a71a829a31,23ac6c3090c5225812370a66b90f0a13760b301a,76648d40225e8f267ef7db6f88720696cf532dc1
ddf0774575787508543d1474127c6f5ed1c91e31,f1bc31b057fa8e0947554b76fb9b890193e1ffe9,9918bb5619c218ea37a234ab93881a8c60e24b7f
c47fc710baec550d5ac0997b0b986f55b99a4124,48d6f5e8a733c94399ce2629a20cf42f2bade46e,daf2dd869b5ace32867c08e89e901283ec3d6b42
5ea775dc58dfc9010ea008f6c1b89d79dcc41acd,2cec5996dfb5d06816c7ea91ac3dafdaa4f92cda,dcadafa1b87f80cf3b0feb110b5ba704ba17448a
910a70ed0d62c54ccb98ee014950ca7d347763ab,fadb324f7cfce4c816456895230a667b5e429b6f,d9e7f845c3bc33955a0a1dbd636190f8750dfebf
d02db5da41162fe1441a3f363e3abe0cd9121222,d0dd4697fa435112d9e10152a94d015bd40f0189,43d84beb01096411ae1a94d6c323082e3ed1a414
22c978c33fead9764e6ed6b34ad271bd8740b2db,c53e1b20d774a75aca5a52624da2618edec29bf5,73ee25071d4922d336dd4c1810d5415271b58729
276618563cb97f4689d2389b6b71b6bbecbc36b7,de5b2c519298a13ac253169ffcb6c42f99725dc9,a65fff24e938b9013076c5462e121f3f3b90d86b
711e412cb7682c3ef80b5e78038201c67f627b8a,13fbc876e0b46bc7b4b6619b2f1b0ef82b981552,c8eeb2ec547079cebf1ab60e48bd731287aeeb39
aaae62ea8860ca88b9965b157398375234f4c22f,ad34a8d5749f8e158e57a4e176f1182d2ec785bf,781560f3e01579422da5ac66c0d88fcc0fc3d4de
7ca0ddc70ed45932763f739ea76150e4c744ebca,ccbec9ee7d6b1c7ccf6faad32b02e606fbcf50f2,6128dcc73542350ce5496f6b56c47c43c0d89187
f81d4550941206cf9269b4a2aabe2d9e42977113,0a6344270a4299f21101e0134ec8aa3c329c5e19,37ad2c42efb5196359a31351441ee2afabcbab6b
97b61b64c33a9f1ef4495167004c69fb93adc9e9,af206dfecdfff756a0c85a01ddc6b7c14a019492,3dc3d83757e70ce1aa6bbdfbb0726a7508d72d87
5b46c44b7d47c686996b5576c5bbfa98fda6830c,10d913624dd54fbe8fb3a55fc45c77fa6267c84a,e2be33b4bed12ead6e7659c999d5bbf4b8ae705b
f259ca5e40a5974443045759f7dd2a4cb380e38c,00f015f593865a453949e56db8edb499766de06a,8e1ecb6a67c48b8c31a5a31769af555f1fbbb87a
b5de5eed0e28f0d1fa3bad97af033a2038dd4bb2,dc2261eff041fd500eb3d4df3cb1a7cbb1302af6,f6419874645e723d5e105c8f78530a31827ec9e6
a99ddc37538bfc87e169fa5b65a2af1d999d7f0c,4f10c539baabb55ad648b1c23fa3edbe77295115,77cb7cd454d4c98a9ae46537654a63a67e3f0046
31448dcf03274e3760cf27ea838b56c86fa9591d,18e519963f6759ef68e90f6328e9a8902df63550,dfb401506707280f0b745e0c80891e68034e84b5
9352e09849d4ecce1f1dfae8948e864638d70e96,5d0e2993fa99cebdc739dcabd6c07ae3b906ac56,b8cc7fb17591772e40cc2232acf85b386ffef5a4
cc0adf66d0491527fdad460db144f372f6437b62,e2431d41ae1e88d795194838f8fa15a97d5b089a,cce871258e703b1305f77f2fbae347beab7a5f1e
2d40b7c463eb3c0b7eb698c3d506909e0fcb0103,f52350382817a9aac3bbab9b8e869332d209bcb6,3f4298dbcaf7efb912eea9a81db216fef6345903
a0a17d5f07344cecd3087478f023b983b0cfb3fa,b95db4b610eec3bb298d1f85b30e36dcd799dae8,db9b2a6a9563f51f8980a265dc4d5366b92e996a
4a3b2c3c32a2fe99aaede77640799dfc8090d698,38b5a4cbb7546f1943ffbfbaef6124cbf178cdbc,4e4f1ec4de1153ed5aeb1d2732bc14d23d49c9f5
ede14da4d24932f581704fd74871b041c425ae8b,86da0baf02481d1afe25962bcd46f243edf3566a,89da1e07291a3c6ef97ac56791ab9d34683e18d4
2301f09d7749d3de96f2b13c9f5c919d920c0213,8d24a28c56af4482982d8e44db12645baa59f37f,0ca0990e8bda7df7971edf4e8d2ce35b56a1021a
8cedb10c3a01510b921bc918d674cfd94b04349c,7148866f8d87292705655f568a0616772f6de0b0,7b3fcc2a2e42d81c8cf01fef3a22cfe164d154f8
f38cfbb23f182406164c1622ef22659400e4d343,b4127651169ce143161923d74b03489c1fb13afe,ce72fbe54d0da5b50677c76d61e21226496036c2
d6efbfb2bbee4486913eafc26e8d0d67b4d8fae4,c422c137f89fb79683924854f34161a2c1fae87e,687384f09123943a7d97082dff4de7315faaee90
9b2b1c12ff14617877a441d51ff27c01c196deb7,223745f6b7bebee9efe845f390f8287bf8604305,98b551d261663612e3af5016bb5b406b9a6a4e89
690ed25adf866074ed4a398bdad427ed97802c85,3dd4b7afbf7b2702e5befb411ceef644949a6dbd,d322143566f8177ff5a4c15f13c81b5f14dcb67e
c40cb181fec5fca3abb35c59d87e9b60d03d1612,e2c96612344ee6ecdb8abd1e977fb99a7d993526,7f9def422f1d4e7b8eb5a85a1b45c044024975f8
Clicking a revision will expand files
* Fix bug
0037601: add some attribte definitions
* Add StoredAttribute class, bug ID
0037602
sinclairql: also disable fcl-stl which was missed in
0047370
* Convert array of jsvalue to array of const where appropriate
- Switch to block-based processing of http-content
* Parse the ContentType according to rfc1341
* Fixed processing post-content of unknown content-types
* Fixed mime-multipart processing for solutions that do
not support chunked processing of content. (like CGI)
* Parse the contenttype according to rfc1341 also for non-streaming
processing
httpserver keep-alive first attempt
httpserver keep-alive first attempt
TFPCustomHttpServer KeepAlive* properties
TFPCustomHttpServer KeepAlive* properties
Read out KeepAlive only if enabled
Read out KeepAlive only if enabled
Rename KeepAliveSupport->KeepAliveEnabled
Rename KeepAliveSupport->KeepAliveEnabled
add threadedhttpserver demo
add threadedhttpserver demo
Remove the KeepAlive* properties from TFPCustomHttpServer, rename KeepAliveEnabled to EnableKeepAlive
Remove the KeepAlive* properties from TFPCustomHttpServer, rename KeepAliveEnabled to EnableKeepAlive
Info about active connections
Info about active connections
Use InterlockedExchangeAdd to get ConnectionCount
Fix TFPHTTPConnectionThread.Execute repeat loop
Fix TFPHTTPConnectionThread.Execute repeat loop
don't keep alive connections that failed
don't keep alive connections that failed
fphttpclient keepalive: failed socket operations raise exceptions - try to reconnect also in this case
Move GetStatusCode from fphttpserver.pp to httpprotocol.pp in order to use it outside fphttpserver
*http client: rewind RequestBody in SendRequest
TFPHTTPConnection: clear FBuffer when read from it in ReadRequestContent
fphttpclient: new DoDataWrite/OnDataSent event
TFPCustomHTTPClient: do not reconnect when terminated
* Some command-line options
fcl-json: fixed testjson.lpi
* Request ID and connection ID for logging purposes
* Add interceptor (middleware) functionality to router + Demo
* Make sure size is set after return
* fix test for targets with FPC_COMP_IS_INT64 defined
* 64-bit ID for 64-bit platforms
* destroy FList in the destructor of TFPHTTPServerConnectionListHandler
* Use FreeAndNil to clear field
* fphttpclient: add new OnIdle event to keep the client responsive in case the server needs a lot of time to respond (and to be able to terminate the request while waiting for data)
* fphttpclient: add new OnIdle event to keep the client responsive in case the server needs a lot of time to respond (and to be able to terminate the request while waiting for data)
* fphttpclient: add new OnIdle event to keep the client responsive in case the server needs a lot of time to respond (and to be able to terminate the request while waiting for data)
* http client: KeepConnectionReconnectLimit to prevent a dead-lock when a server is not available
* check for LastError coming from CanRead()
* More clear variable names
* don't execute DoBeforeDataRead unless OnIdle is set
* Update handler functionality
* Better SetfieldByName/GetFieldByName
* Add http client pool from Ondrej Pokorny
fphttpclient: remove OnIdle and add protected methods so that the feature can be added in a descendant
fcl-web: example missing semicolon and gitignore linux bin
* Use FPC server by default
* Remove module, move module before default
* SetStatus convenience call
* Uppercase argument for GetHTTPStatusText
* Allow to move routes, make route management thread-safe
* Improved solution for issue
gitlab 0038435, json helpers for http request/response
* location management API
* Enable location management API
* New keywords for ECMA2021
* const and let statements
* initialize Result variable of THTTPSysHandler.WaitForRequest
+ implement support for terminating a HTTPSys web service handler that's blocking inside WaitForRequest
* move freeing of the event log to a separate, virtual method so that this can be changed depending on the needs of TCustomWebApplication.CreateEventLog (e.g. when using a TCustomWebApplication descendant together with a TDaemonApplication)
* regenerated makefiles with the latest fpcmake from trunk
* fix memory leak in TFPPooledConnectionHandler
* Updated json tests to run properly when the default code is non-UTF8.
* Make some properties public
* Allow to specify IP address
* Parse cookies also when setting variable based on name
fcl-js: fixed stackoverflow when freeing long binary list
fcl-js: fixed TJSWriter.WriteExportStatement spacing
* typescript parsing & conversion, initial commit
* TypeScript Improvements, 97% of DefinitelyTyped declarations now parsed
* Publish handler resulttype, add OnContextExecute
* RPC Client code generator (also in pas2js)
* Add RPCMethodName property
* Fix registry search for method name
* Create API description as Pascal
* Fix memleak and compiler hints
* Position stream on start
* Some fixes & improvements
* Initialize APIRequestName
* fpjsonvalue unit to convert between TValue (RTTI unit) and JSON
* Move resourcestrings to single unit
Checking the protocol version for websocket is not required on the client side.
* DefinitelyTyped now converts
Added a connection event when clients connect to the server.
The disconnect event is now called once instead of three.
Fixed error if payload = 0
* Use resource strings, add const to string params where appropriate
* Remove debugging statements
* Fix warnings & hints, use resourcestrings, add const where appropriate
Typecasting to int64 type fixes the exception.
Added reason for closing the connection.
* Patch from Yuri Silver to read data correctly. fix issue 39517
Websocket server correct work with Ping Pong
Added reaction for incorrect reserved bits.
Added processing of reserved opcodes.
Control message must not be fragmented.
Fixed fragmentation of incoming messages.
UTF-8 support for message.
All Autobahn testsuite tests passed
Client support of HTTP over unix socket
fphttpclient - only handle Unix in conditional compilation for UnixSocketPath feature
Fix memory leak - avoid handler allocation when not needed
fcl-json: clean up, updated TestStrings
fcl-js: switched to TypedParams
In case of incorrect shutdown of the client. The buffer may return =0. There will be an exception.
Fix leak due to bad merge or rebase
* Normalize route when checking for duplicate routes. Fix issue
gitlab 0039570
fcl-js: fixed compile with pas2js
* Extra options for more flexibility
fcl-web: added IWSTransport.PeerPort, fixed compile with fpc 3.2.2
fcl-web: added property TWebSocketServer.Host
fcl-net: no ESocketError after closing the connection
* Added some clarifying comments for TWSMessage data
* Publish OnError and OnConnectionHandshake
* Correct whitespace definition
* Fix parsing of bootstrap
* Numeric chars allowed in identifier, no need to escape
fcl-web: fixed compile tcjwt
* Use memorystream as a kind of tstringbuilder for json escaping(StringToJSONString), fixes bug
gitlab 0039525
fcl-web: added TJWTSignerRS256
fcl-web: added TJWTSignerRS384, TJWTSignerRS512
fcl-web: RS256 using sign/verify
fcl-web: TJWTSignerRSA: prefix hash with ASN1 digest info
fcl-web: TJWTSignerPS256, TJWTSignerPS384, TJWTSignerPS512
fcl-web: fpjwarsa: catch exceptions during verification
fcl-web: added des3 encoded pem example
fcl-web: removed des3 encoded pem example
* improved version that is still readable and has hex inline. Most importantly, it writes directly to result string rather than a temp, saving a copy that is hurting specially for longer strings.
fcl-json: fixed compile with fpc 3.2.2
fcl-json: fixed StringToJSONString
fcl-json: StringToJSON: fixed pas2js compile and less mem allocations
fcl-json: fixed compile pas2js
* OnDisconnect before disconnecting objects
* OnDisconnect before disconnecting objects (cleanup). Fix issue
gitlab 0039780
* Free extra headers after disconnect
* OnDisconnect called too often
* need to pass connection. Do not call disconnect event twice
Fix error getting payload when receiving a close command.
Added SSL support for Websocket client.
* Use default handler for SSL sockets
* Remove dependency on fpopenssl unit
fcl-web: TCustomWSServer.RemoveConnection: call DoDisconnect on disconnect
fcl-web: TCustomWSServer.OnDisconnect: pass TCustomWebsocketClient as Sender instead of connection
fcl-web: fixed TCustomWebsocketClient.FreeConnectionObjects
* Fix from Kevin Jesshope to correct filename detection in CGI app
* Fix from Kevin Jesshope to fix concurrent access in case of CGI
webidl: INputStream, OutputStream, set default unitname, wasmjob: variants
webidl: added typedef test for wasmjob
webidl: test interface attribute boolean
webidl: test interface function setEventHandler
webidl: Promise as IJSPromise
webidl: promise: add comment of returntype
webidl: pass variant args as const
* Call CheckSession before handling request, but after handling CORS
fcl-css: StringToCSSString: fixed advancing utf-8
fcl-css: keep exception stack traces, fixed parsing empty rule
fcl-css: TCSSStringElement = Class(TCSSBaseStringElement)
* Patch from Luca Olivetti to fix memleak in CORS support. Fixes issue
gitlab 0039886
fcl-css: added TCSSElement.Parent
fcl-css: added GetCSSPath
fcl-css: TCSSIntegerElement.GetAsString: append units
fcl-css: started TCSSResolver
fcl-css: selector child combinator
fcl-css: resolver: adjacent and general sibling combinator
fcl-css: resolver: has attribute check
fcl-css: resolver: invalid selectors
fcl-css: fixed ~= searching only words separated by whitespace
fcl-css: :is :where, nth-child of
fcl-css: fixed reading unary tile not as identifier
fcl-css: cache nth-child lists
fcl-css: resolveR: surpress duplicate warnings
fcl-css: parse relational selector list
fcl-web: TWSServerConnection.HandshakeResponseSent propagates result
* Fix memleak in case of error.
fcl-web: fixed crash in websocket server on windows when closing when already disconnected
fcl-css: shorten PseudoAttribute to Pseudo
fcl-css: renamed TCSSNode to ICSSNode, resolver: list of style elements
fcl-css: added attribute value check
* Added debugcapture route
* Fix handling of options file
* Publish all available & needed properties
use function references for callbacks + change TNotifyEvent to TFPHTTPClientPoolSimpleCallback
both callback interfaces: classic events and function references
* simplify implementation (almost) without touching the public interface
* make function references an option to classic events
httpserver: add KeepConnectionIdleTimeout property and OnKeepConnectionIdle event. Fix KeepConnectionTimeout to match the meaning from the comment and the name
disable KeepAlive flag in CloseConnectionSocket to close hanging keep-alive connections
async pool: procedure references simpler
fcl-css: comments and warnings
* Allow to specify DB connection params on command-line
* Modifier for allowed schemas
* Version number for compatibility with lazarus webserver
fcl-json: add support to create JSONObject with QWord values
fphttpclient allow to override supported protocols from url
* Obey -p/--port command-line option
* Patch from Andrew Haines to actually pass OutgoingFrameMask to frames. Add woSendErrClosesConn flag
* Patch from Andrew Haines: do not send close connection message if already closed
* Sample program from Andrew Haines to test echo servers
* RFC states that client must use mask: enforce mask on connect
* Fix missing fields in TSQLDBRestResource.Assign
* Add PATCH method to router
The test for '' after getting the location into BaseDir should test BaseDir not BaseURL.
* Fix dynamic array (managed types) handling in restbase.pp (Ref
gitlab 0040094)
Fixes code in method TBaseObject.SetArrayProperty
and removes private method SetArrayElements
This fixes AVs and memory leaks.
* more fixes to googleapiconv (ref
gitlab 0040094)
(googlediscoverytopas)
-Fix unit clause and "uses" for generated units
(googleapiconv)
-Add --version parameter
-Fix logging messages
-Set OutputUnitName so units have correct clause
(restbase)
-Add #todo notes for follow up
-Move function RFC3339ToDateTime next to related functions
* Remove conditional code for compiling googleapiconv with v2.6.4 on i386
(restbase.pp)
- Remove {$ifdef ver2_6} directives and associated code
- Remove {$ifndef ver2_6} directives (but keep code)
(googleapiconv.pp)
- Remove {$ifdef ver2_6} directives and associated code
- Remove synapse defines and associated code line
(googlediscoverytopas.pp)
- Remove {$ifdef ver2_6} directives and associated code
* More fixes and cleanups in restbase.pp (googleapiconv)
- Move test functions out of class to local procedures and into
{$IFDEF DUMPARRAY} and change the parameters to match the rtl versions:
function GetDynArrayProp(P: PPropInfo) : Pointer; virtual;
procedure SetDynArrayProp(P: PPropInfo; AValue : Pointer); virtual;
- Add dyn arrays support to the ClearProperties method
- In SetArrayProperty, fix previous commit (fba7595b) because the
array properties were not being set and make the dyn array handling
code more typesafe.
- In SetObjectProperty use TObjectArray instead of Pointer to make the
dyn array handling code more typesafe.
- In ClearChildren use ClearProperty to do the work and simplify the code.
- Fix some compiler warnings and hints.
* Adapt fcl-web (and examples) to unicode rtl: Need widestringmanager, use echo as path, make runnable.
* Fix compilation with unicode rtl
* Set result correctly in TCORSSupport.HandleRequest
* Avoid error by checking if content was already sent
* Create container with unique name, improve thread-safety
* Different PUT/PATCH. Allow legacy PUT
* Completion of put/patch split
* Correct params checking in case of array
* Fix interlockedincrement
fcl-web: moved OnLog from TSimpleFileModule to TFPCustomFileModule
fcl-js: fixed writing small floats
* Dotted filenames for package fcl-json
* Dotted filenames for package fcl-js
* Dotted filenames for package fcl-web
* Dotted filenames for package fcl-base
* Dotted filenames for package fcl-css
* Fix default classname property
* Add possibility to read updated data
* Add support for select query parameters
* Some changes suggested by Edgar Fernando
* Add HTTP logging mechanism
* JSON-RPC 2.0 allows params to be optional
fcl-web: fixed av on logging TFPHTTPConnection.DoHandleRequest
fcl-css: ECSSException, resolver log warnings
httpserver: make sure that socket is freed even if StartServerSocket raised an exception
fcl-web: made TFPCustomHTTPServer.CreateUpgradeHandlerList virtual
fcl-web: added TCustomWebsocketUpgrader.OnConnect
fcl-web: TWSFramePayload.ReadData: check for endless loop and wait for new data
fcl-net: fixed memleak in TFPThreadedConnectionHandler
fcl-web: TWSThreadedConnectionHandler.TWSConnectionThread.Execute: fixed handling exception
Changed the JS Writter to avoid access violation in the buffer.
* Make sure it compiles with FPC 3.2.2 for pas2js...
* Added JSON fpcunit helper
* Add possibility to return empty dataset instead of 404, add event to refine WHERE Clause in code
* Support for content-disposition: attachment
* Trigger OnHeaders after responsestatuscode is set. Fixes issue
gitlab 0040419
* Allow event handlers to modify input
* Fix compilation in unicode RTL
fcl-json: fixed compile with pas2js
fcl-js: fixed TBufferWriter on nodejs
* Some fixes in code generation
* Fix typo in enumeration value rloHTTP
* Replace widestring with unicodestring (faster on windows). Fixes issue
gitlab 0040613
Waaay faster TJSONScanner.
* Make paramdefs owned, so IDE can trace back changes to owning component
* Fix compilation in unicode rtl
* Avoid index out of bounds error
fcl-js: parse power token
Use varints for TJSONScanner.FParts to save memory.
* Write correct number of characters to log file
* Add FCM push notifications
* CLI example for FCM push messages
* Fixed namespaced compilation, rename sender to client to be in line with class name
HTTPClient: check for changed host/port for KeepConnection
fcl-css: TCSSParser allows to override css classes
fcl-css: fixed string to CSS - no quotes needed, as spaces are converted
fcl-css: fixed parsing -0.5
* Correctly unregister all routes. Do not call register routes when already registered
fcl-css:
- renamed TCSSUnits to TCSSUnit
- added a css registry for attributes, types, keywords, and function names
- resolver merges shorthand properties
- resolver distinguishes stylesheets from user-agent, user and author
- resolver now parses css itself, it adds its own types and customdata
- attributes are now checked at parse time and marked invalid
- started skipping invalid instead of raise
* Print clickable URL with start location
* Make sure sentences end on point when needed.
Fixed work in ThreadMode := wtmNone mode.
For connections list TThreadList changed to safe TFPHashList.
* Fix compilation under unicode rtl
* Explain how to run full tests
* Rename keyword info to avoid confusion
fcl-css: resolver: added colors, replaced filename with name, registry stamp
fcl-css: renamed css units
* Correct compilation with namespaces
fcl-css: resolver: all and origin
fcl-css: resolver: test warnings
fcl-css: resolver: var and custom attributes
fcl-css: fixed parsing --var
fcl-css: fixed parsing attribute value hex color
* Fix compilation when using unicode rtl
fcl-js: escape unicode whitespaces in string literals
fcl-css: resolver: parse value without registry
* Only flush when actually writing
* Add readfromscanner, fix reading type
* Pascal code generation starting from json-schema
* Refactor to use jsonwriter
* Remove references to openAPI
+ Allow customization of response through callback
+ Allow customization of response through custom headers
+ Log error conditions (403,400,404)
* Show info in a more structured way
* Allow to compile with FPC 3.2.2
* Fix --coi option.
* Allow to specify custom response headers in config file [Headers] section
* Move simple server to unit so it can be reused (pas2js webcompiler)
* Some cleanup, fix warnings/hints
* Tests for code generation. Change type handling to create pascal type data for all data
* Rename version constant
* Calculate dependencies correctly, only generate definitions for schema types
* OpenAPI, initial commit
fcl-css: fixed resolving function
* Fixes in array type handling
* Add request ID handling and callback-based result
* Add newline after uses clause
* OpenAPI helper units and classes
* Corrections when writing file: write in 3.1 format
* Allow to compile with dotted units
* OpenAPI support for SQLDBRest
* Do not call parsing if JSON is empty (e.g. return 204 with empty body)
* System.Types for Delphi code
* Search for correct element type when checking array types
* Correctly get callback type
* Patch from Don Siders to fix typo in CSS attribute name. Fixes issue
gitlab 0041050
* Append extension, needed for Laz codetools. Fixes issue
gitlab 0041061
* Add service module creation
* Some improvements to proxy server module generation
* Patch from Andrew Haines to fix creating signature. Fixes issue
gitlab 0041058
- remove what appears to be debug output (will otherwise lead to exceptions on systems where Output is not open (e.g. Windows service))
* Add possibility to specify UTC or not
* Generate also string (enum) type definitions
* Fix naming for string types
* Correction in naming of types
fcl-css: parse pseudo elements as unary or binary elements, resolver: pseudo element
fix KeepConnectionTimeout loop
(inactive) Revisions in this set c1e700b3fe10d2139af666528fcacad6041afa45,b9158ed31171163f69aed30c29bdc3d52eae94f2,65bcfe36b37703169afc2d62574a8e7cabcbf477,827bb70333d54f3be7d2d3840914a36678a4bd77,04de97bc091ca90ab85cf20e004aa93377677467,5ec7ffa8d9cf72e1af5dab796dd3a55680966f09,a798ba3fcaeb689e28463cee0671c56953b7fd2b,2df2986a4b46d89d43e7a8d4577e852bc7dc86ef,049af48bd8c5d759b341fc8edfb36184ea57a31a,2aab9b1f9bc47b84b10449b2ab43ddb30ec35335,0d1fb4190172c974f3be79c8045932f3b2a74292,ffa69353f36e74007f998f4bccdc59b3c9e14a0b,5e913147ab8e1976abbb36804baa358daff31f37,43753442c05a8c6785ca466ebfcd4102de536cce,b9b08f37fecf309cba86a43466574eb2f5b47cba,970e039b9a5d96dda8ae4449ee633e665762f641,de0e5919c988d5687e136b74b998e057bf9a5d9d,cae74485cfd6225e5e3e5b39d4dea1769f20d227,5eda61e136416fe812ad7f7597f14ec64ddac019,25450a99ed7d01fa0df4b6a156fcbeb8e62a8d94,47610d5c651a232a2061a44e2358b147ba65ff1c,5afaeaa3ac813e5682d0da9de7d17454a4771d2c,16fa6fa1059745410315a7c19a7e31170a637e9b,c46b45bf72ed7e4522e69611d0a5c5c2f44739c9
* Fix bug
0037830, always append dot even if signature empty
fcl-json: fixed writing boolean lowercase, as expected by reader
fcl-js: TJSCallExpression.InsertArg
* Fix bug
0037980: correct verifypeercert
fcl-js: added TTextWriter.LineBreak
fcl-js: writer: fixed writing invalid UTF-16
* Patch from Bart Broersma for issue ID
0038622
* Patch method contribution
fcl-js: write and free TBinaryExpr left lists without stack
fcl-js: fixed writing multi add
* Fix issue
0039350 : strip extension dot in windows loadknowntypes
* SHA512/SHA384 + JWT signers, refactor SHA256 to use class methods
* Base hash units moved & renamed
* Patch from Laco to add TSingleField