• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2021-2023 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #include "common/util/form_util.h"
17 
18 #include <set>
19 #include <thread>
20 #include <chrono>
21 #include <cinttypes>
22 #include <regex>
23 
24 #include "accesstoken_kit.h"
25 #include "bundle_constants.h"
26 #include "fms_log_wrapper.h"
27 #include "form_constants.h"
28 #include "ipc_skeleton.h"
29 #include "os_account_manager_wrapper.h"
30 
31 namespace OHOS {
32 namespace AppExecFwk {
33 namespace {
34 constexpr int64_t SEC_TO_NANOSEC = 1000000000;
35 constexpr int64_t SEC_TO_MILLISEC = 1000;
36 constexpr int64_t MILLISEC_TO_NANOSEC = 1000000;
37 constexpr int64_t INVALID_UDID_HASH = 0;
38 constexpr int32_t SYSTEM_UID = 1000;
39 constexpr int INT_64_LENGTH = 19;
40 constexpr int ZERO_VALUE = 0;
41 constexpr int BASE_NUMBER = 9;
42 constexpr int64_t HEAD_BIT_NUM = 9000000000000000000;
43 } // namespace
44 
45 using namespace std;
46 using namespace std::chrono;
47 
48 static std::set<uint64_t> s_memFormIds;
49 static std::mutex s_memFormIdsMutex;
50 
51 /**
52  * @brief create form id for form.
53  * @param udidHash udid hash
54  * @return new form id.
55  */
GenerateFormId(int64_t udidHash)56 int64_t FormUtil::GenerateFormId(int64_t udidHash)
57 {
58     set<uint64_t>::iterator it;
59     const int retryTimes = 5;
60     const int delayMs = 1;
61     int64_t elapsedTime = 0;
62     size_t elapsedHash = 0;
63     uint64_t unsignedUdidHash = 0;
64     uint64_t formId = 0;
65     int64_t ret = -1;
66     struct timespec t;
67     t.tv_sec = 0;
68     t.tv_nsec = 0;
69     for (int i = 0; i < retryTimes; i++) {
70         clock_gettime(CLOCK_REALTIME, &t);
71         elapsedTime = (t.tv_sec) * SEC_TO_NANOSEC + t.tv_nsec;
72         elapsedHash = std::hash<std::string>()(std::to_string(elapsedTime));
73         unsignedUdidHash = static_cast<uint64_t>(udidHash);
74         formId = unsignedUdidHash | (uint32_t)(elapsedHash & 0x000000007fffffffL);
75         ret = static_cast<int64_t>(formId);
76         std::lock_guard<std::mutex> lock(s_memFormIdsMutex);
77         it = s_memFormIds.find(formId);
78         if (it != s_memFormIds.end()) {
79             HILOG_INFO("repeated formId:%{public}" PRId64, ret);
80             std::this_thread::sleep_for(std::chrono::milliseconds(delayMs));
81         } else {
82             s_memFormIds.insert(formId);
83             break;
84         }
85     }
86     HILOG_INFO("generate elapsed hash %{public}zu, formId:%{public}" PRId64, elapsedHash, ret);
87     return ret;
88 }
89 
90 /**
91 @brief delete form id for form.
92 @param formId The id of the form.
93 */
DeleteFormId(int64_t formId)94 void FormUtil::DeleteFormId(int64_t formId)
95 {
96     std::lock_guard<std::mutex> lock(s_memFormIdsMutex);
97     s_memFormIds.erase(static_cast<uint64_t>(formId));
98 }
99 
100 /**
101  * @brief padding form id.
102  * @param formId The id of the form.
103  * @param udidHash udid hash
104  * @return new form id.
105  */
PaddingUdidHash(uint64_t formId,uint64_t udidHash)106 int64_t FormUtil::PaddingUdidHash(uint64_t formId, uint64_t udidHash)
107 {
108     // Compatible with int form id.
109     if ((formId & 0xffffffff00000000L) == 0) {
110         return udidHash | formId;
111     }
112 
113     return formId;
114 }
115 /**
116  * @brief create udid hash.
117  * @param udidHash udid hash.
118  * @return Returns true on success, false on failure.
119  */
GenerateUdidHash(int64_t & udidHash)120 bool FormUtil::GenerateUdidHash(int64_t &udidHash)
121 {
122     HILOG_INFO("udidHash:%{private}s", std::to_string(udidHash).c_str());
123     if (udidHash != INVALID_UDID_HASH) {
124         return true;
125     }
126 
127     u_int64_t hashId = 0L;
128     const int32_t thirtyTwo = 32;
129     udidHash = (hashId & 0x0000000000ffffffL) << thirtyTwo;
130     if (udidHash < 0) {
131         udidHash = 0L;
132     }
133     HILOG_INFO("generate hash %{private}s", std::to_string(udidHash).c_str());
134     return true;
135 }
136 /**
137  * @brief Get current system nanosecond.
138  * @return Current system nanosecond.
139  */
GetCurrentNanosecond()140 int64_t FormUtil::GetCurrentNanosecond()
141 {
142     struct timespec ts;
143     ts.tv_sec = 0;
144     ts.tv_nsec = 0;
145     clock_gettime(CLOCK_MONOTONIC, &ts);
146     return (ts.tv_sec * SEC_TO_NANOSEC + ts.tv_nsec);
147 }
148 /**
149  * @brief Get current system millisecond.
150  * @return Current system millisecond.
151  */
GetCurrentMillisecond()152 int64_t FormUtil::GetCurrentMillisecond()
153 {
154     struct timespec ts;
155     clock_gettime(CLOCK_REALTIME, &ts);
156     return (ts.tv_sec * SEC_TO_MILLISEC + ts.tv_nsec / MILLISEC_TO_NANOSEC);
157 }
158 
GetCurrentSteadyClockMillseconds()159 int64_t FormUtil::GetCurrentSteadyClockMillseconds()
160 {
161     return std::chrono::duration_cast<std::chrono::milliseconds>(
162         std::chrono::steady_clock::now().time_since_epoch()).count();
163 }
164 
GetNowMillisecond()165 int64_t FormUtil::GetNowMillisecond()
166 {
167     system_clock::time_point pointTime = system_clock::now();
168     auto timeMilliseconds = chrono::duration_cast<chrono::milliseconds>(pointTime.time_since_epoch());
169     return timeMilliseconds.count();
170 }
171 
172 /**
173  * @brief Get millisecond from tm.
174  * @param tmAtTime tm time.
175  * @return Millisecond.
176  */
GetMillisecondFromTm(struct tm & tmAtTime)177 int64_t FormUtil::GetMillisecondFromTm(struct tm &tmAtTime)
178 {
179     time_t inputTime = mktime(&tmAtTime);
180     if (inputTime == -1) {
181         HILOG_ERROR("mktime failed");
182         return -1;
183     }
184     system_clock::time_point pointTime = system_clock::from_time_t(inputTime);
185     auto timeMilliseconds = chrono::duration_cast<chrono::milliseconds>(pointTime.time_since_epoch());
186     return timeMilliseconds.count();
187 }
188 
189 /**
190 * @brief split string.
191  * @param in string.
192  * @param delim delimiter.
193  * @return string list.
194  */
StringSplit(const std::string & in,const std::string & delim)195 std::vector<std::string> FormUtil::StringSplit(const std::string &in, const std::string &delim)
196 {
197     std::regex reg { delim };
198     return std::vector<std::string> {
199         std::sregex_token_iterator(in.begin(), in.end(), reg, -1),
200         std::sregex_token_iterator()
201     };
202 }
203 
TestFormId1(int & formId)204 int FormUtil::TestFormId1(int &formId)
205 {
206     switch (formId) {
207         case int(TestFormNum::Num1): return formId;
208         case int(TestFormNum::Num2): return formId;
209         case int(TestFormNum::Num3): return formId;
210         case int(TestFormNum::Num4): return formId;
211         case int(TestFormNum::Num5): return formId;
212         case int(TestFormNum::Num6): return formId;
213         case int(TestFormNum::Num7): return formId;
214         case int(TestFormNum::Num8): return formId;
215         case int(TestFormNum::Num9): return formId;
216         case int(TestFormNum::Num10): return formId;
217         case int(TestFormNum::Num11): return formId;
218         case int(TestFormNum::Num12): return formId;
219         case int(TestFormNum::Num13): return formId;
220         case int(TestFormNum::Num14): return formId;
221         case int(TestFormNum::Num15): return formId;
222         case int(TestFormNum::Num16): return formId;
223         case int(TestFormNum::Num17): return formId;
224         case int(TestFormNum::Num18): return formId;
225         case int(TestFormNum::Num19): return formId;
226         case int(TestFormNum::Num20): return formId;
227         case int(TestFormNum::Num21): return formId;
228         case int(TestFormNum::Num22): return formId;
229         case int(TestFormNum::Num23): return formId;
230         case int(TestFormNum::Num24): return formId;
231         case int(TestFormNum::Num25): return formId;
232         case int(TestFormNum::Num26): return formId;
233         case int(TestFormNum::Num27): return formId;
234         case int(TestFormNum::Num28): return formId;
235         case int(TestFormNum::Num29): return formId;
236         case int(TestFormNum::Num30): return formId;
237         case int(TestFormNum::Num31): return formId;
238         case int(TestFormNum::Num32): return formId;
239         case int(TestFormNum::Num33): return formId;
240         case int(TestFormNum::Num34): return formId;
241         case int(TestFormNum::Num35): return formId;
242         case int(TestFormNum::Num36): return formId;
243         case int(TestFormNum::Num37): return formId;
244         case int(TestFormNum::Num38): return formId;
245         case int(TestFormNum::Num39): return formId;
246         case int(TestFormNum::Num40): return formId;
247         default: return formId;
248     }
249 }
250 
TestFormId2(int & formId)251 int FormUtil::TestFormId2(int &formId)
252 {
253     switch (formId) {
254         case int(TestFormNum::Num1): return formId;
255         case int(TestFormNum::Num2): return formId;
256         case int(TestFormNum::Num3): return formId;
257         case int(TestFormNum::Num4): return formId;
258         case int(TestFormNum::Num5): return formId;
259         case int(TestFormNum::Num6): return formId;
260         case int(TestFormNum::Num7): return formId;
261         case int(TestFormNum::Num8): return formId;
262         case int(TestFormNum::Num9): return formId;
263         case int(TestFormNum::Num10): return formId;
264         case int(TestFormNum::Num11): return formId;
265         case int(TestFormNum::Num12): return formId;
266         case int(TestFormNum::Num13): return formId;
267         case int(TestFormNum::Num14): return formId;
268         case int(TestFormNum::Num15): return formId;
269         case int(TestFormNum::Num16): return formId;
270         case int(TestFormNum::Num17): return formId;
271         case int(TestFormNum::Num18): return formId;
272         case int(TestFormNum::Num19): return formId;
273         case int(TestFormNum::Num20): return formId;
274         case int(TestFormNum::Num21): return formId;
275         case int(TestFormNum::Num22): return formId;
276         case int(TestFormNum::Num23): return formId;
277         case int(TestFormNum::Num24): return formId;
278         case int(TestFormNum::Num25): return formId;
279         case int(TestFormNum::Num26): return formId;
280         case int(TestFormNum::Num27): return formId;
281         case int(TestFormNum::Num28): return formId;
282         case int(TestFormNum::Num29): return formId;
283         case int(TestFormNum::Num30): return formId;
284         case int(TestFormNum::Num31): return formId;
285         case int(TestFormNum::Num32): return formId;
286         case int(TestFormNum::Num33): return formId;
287         case int(TestFormNum::Num34): return formId;
288         case int(TestFormNum::Num35): return formId;
289         case int(TestFormNum::Num36): return formId;
290         case int(TestFormNum::Num37): return formId;
291         case int(TestFormNum::Num38): return formId;
292         case int(TestFormNum::Num39): return formId;
293         case int(TestFormNum::Num40): return formId;
294         default: return formId;
295     }
296 }
297 
TestFormId3(int & formId)298 int FormUtil::TestFormId3(int &formId)
299 {
300     switch (formId) {
301         case int(TestFormNum::Num1): return formId;
302         case int(TestFormNum::Num2): return formId;
303         case int(TestFormNum::Num3): return formId;
304         case int(TestFormNum::Num4): return formId;
305         case int(TestFormNum::Num5): return formId;
306         case int(TestFormNum::Num6): return formId;
307         case int(TestFormNum::Num7): return formId;
308         case int(TestFormNum::Num8): return formId;
309         case int(TestFormNum::Num9): return formId;
310         case int(TestFormNum::Num10): return formId;
311         case int(TestFormNum::Num11): return formId;
312         case int(TestFormNum::Num12): return formId;
313         case int(TestFormNum::Num13): return formId;
314         case int(TestFormNum::Num14): return formId;
315         case int(TestFormNum::Num15): return formId;
316         case int(TestFormNum::Num16): return formId;
317         case int(TestFormNum::Num17): return formId;
318         case int(TestFormNum::Num18): return formId;
319         case int(TestFormNum::Num19): return formId;
320         case int(TestFormNum::Num20): return formId;
321         case int(TestFormNum::Num21): return formId;
322         case int(TestFormNum::Num22): return formId;
323         case int(TestFormNum::Num23): return formId;
324         case int(TestFormNum::Num24): return formId;
325         case int(TestFormNum::Num25): return formId;
326         case int(TestFormNum::Num26): return formId;
327         case int(TestFormNum::Num27): return formId;
328         case int(TestFormNum::Num28): return formId;
329         case int(TestFormNum::Num29): return formId;
330         case int(TestFormNum::Num30): return formId;
331         case int(TestFormNum::Num31): return formId;
332         case int(TestFormNum::Num32): return formId;
333         case int(TestFormNum::Num33): return formId;
334         case int(TestFormNum::Num34): return formId;
335         case int(TestFormNum::Num35): return formId;
336         case int(TestFormNum::Num36): return formId;
337         case int(TestFormNum::Num37): return formId;
338         case int(TestFormNum::Num38): return formId;
339         case int(TestFormNum::Num39): return formId;
340         case int(TestFormNum::Num40): return formId;
341         default: return formId;
342     }
343 }
344 
TestFormId4(int & formId)345 int FormUtil::TestFormId4(int &formId)
346 {
347     switch (formId) {
348         case int(TestFormNum::Num1): return formId;
349         case int(TestFormNum::Num2): return formId;
350         case int(TestFormNum::Num3): return formId;
351         case int(TestFormNum::Num4): return formId;
352         case int(TestFormNum::Num5): return formId;
353         case int(TestFormNum::Num6): return formId;
354         case int(TestFormNum::Num7): return formId;
355         case int(TestFormNum::Num8): return formId;
356         case int(TestFormNum::Num9): return formId;
357         case int(TestFormNum::Num10): return formId;
358         case int(TestFormNum::Num11): return formId;
359         case int(TestFormNum::Num12): return formId;
360         case int(TestFormNum::Num13): return formId;
361         case int(TestFormNum::Num14): return formId;
362         case int(TestFormNum::Num15): return formId;
363         case int(TestFormNum::Num16): return formId;
364         case int(TestFormNum::Num17): return formId;
365         case int(TestFormNum::Num18): return formId;
366         case int(TestFormNum::Num19): return formId;
367         case int(TestFormNum::Num20): return formId;
368         case int(TestFormNum::Num21): return formId;
369         case int(TestFormNum::Num22): return formId;
370         case int(TestFormNum::Num23): return formId;
371         case int(TestFormNum::Num24): return formId;
372         case int(TestFormNum::Num25): return formId;
373         case int(TestFormNum::Num26): return formId;
374         case int(TestFormNum::Num27): return formId;
375         case int(TestFormNum::Num28): return formId;
376         case int(TestFormNum::Num29): return formId;
377         case int(TestFormNum::Num30): return formId;
378         case int(TestFormNum::Num31): return formId;
379         case int(TestFormNum::Num32): return formId;
380         case int(TestFormNum::Num33): return formId;
381         case int(TestFormNum::Num34): return formId;
382         case int(TestFormNum::Num35): return formId;
383         case int(TestFormNum::Num36): return formId;
384         case int(TestFormNum::Num37): return formId;
385         case int(TestFormNum::Num38): return formId;
386         case int(TestFormNum::Num39): return formId;
387         case int(TestFormNum::Num40): return formId;
388         default: return formId;
389     }
390 }
391 
TestFormId5(int & formId)392 int FormUtil::TestFormId5(int &formId)
393 {
394     switch (formId) {
395         case int(TestFormNum::Num1): return formId;
396         case int(TestFormNum::Num2): return formId;
397         case int(TestFormNum::Num3): return formId;
398         case int(TestFormNum::Num4): return formId;
399         case int(TestFormNum::Num5): return formId;
400         case int(TestFormNum::Num6): return formId;
401         case int(TestFormNum::Num7): return formId;
402         case int(TestFormNum::Num8): return formId;
403         case int(TestFormNum::Num9): return formId;
404         case int(TestFormNum::Num10): return formId;
405         case int(TestFormNum::Num11): return formId;
406         case int(TestFormNum::Num12): return formId;
407         case int(TestFormNum::Num13): return formId;
408         case int(TestFormNum::Num14): return formId;
409         case int(TestFormNum::Num15): return formId;
410         case int(TestFormNum::Num16): return formId;
411         case int(TestFormNum::Num17): return formId;
412         case int(TestFormNum::Num18): return formId;
413         case int(TestFormNum::Num19): return formId;
414         case int(TestFormNum::Num20): return formId;
415         case int(TestFormNum::Num21): return formId;
416         case int(TestFormNum::Num22): return formId;
417         case int(TestFormNum::Num23): return formId;
418         case int(TestFormNum::Num24): return formId;
419         case int(TestFormNum::Num25): return formId;
420         case int(TestFormNum::Num26): return formId;
421         case int(TestFormNum::Num27): return formId;
422         case int(TestFormNum::Num28): return formId;
423         case int(TestFormNum::Num29): return formId;
424         case int(TestFormNum::Num30): return formId;
425         case int(TestFormNum::Num31): return formId;
426         case int(TestFormNum::Num32): return formId;
427         case int(TestFormNum::Num33): return formId;
428         case int(TestFormNum::Num34): return formId;
429         case int(TestFormNum::Num35): return formId;
430         case int(TestFormNum::Num36): return formId;
431         case int(TestFormNum::Num37): return formId;
432         case int(TestFormNum::Num38): return formId;
433         case int(TestFormNum::Num39): return formId;
434         case int(TestFormNum::Num40): return formId;
435         default: return formId;
436     }
437 }
438 
TestFormId6(int & formId)439 int FormUtil::TestFormId6(int &formId)
440 {
441     switch (formId) {
442         case int(TestFormNum::Num1): return formId;
443         case int(TestFormNum::Num2): return formId;
444         case int(TestFormNum::Num3): return formId;
445         case int(TestFormNum::Num4): return formId;
446         case int(TestFormNum::Num5): return formId;
447         case int(TestFormNum::Num6): return formId;
448         case int(TestFormNum::Num7): return formId;
449         case int(TestFormNum::Num8): return formId;
450         case int(TestFormNum::Num9): return formId;
451         case int(TestFormNum::Num10): return formId;
452         case int(TestFormNum::Num11): return formId;
453         case int(TestFormNum::Num12): return formId;
454         case int(TestFormNum::Num13): return formId;
455         case int(TestFormNum::Num14): return formId;
456         case int(TestFormNum::Num15): return formId;
457         case int(TestFormNum::Num16): return formId;
458         case int(TestFormNum::Num17): return formId;
459         case int(TestFormNum::Num18): return formId;
460         case int(TestFormNum::Num19): return formId;
461         case int(TestFormNum::Num20): return formId;
462         case int(TestFormNum::Num21): return formId;
463         case int(TestFormNum::Num22): return formId;
464         case int(TestFormNum::Num23): return formId;
465         case int(TestFormNum::Num24): return formId;
466         case int(TestFormNum::Num25): return formId;
467         case int(TestFormNum::Num26): return formId;
468         case int(TestFormNum::Num27): return formId;
469         case int(TestFormNum::Num28): return formId;
470         case int(TestFormNum::Num29): return formId;
471         case int(TestFormNum::Num30): return formId;
472         case int(TestFormNum::Num31): return formId;
473         case int(TestFormNum::Num32): return formId;
474         case int(TestFormNum::Num33): return formId;
475         case int(TestFormNum::Num34): return formId;
476         case int(TestFormNum::Num35): return formId;
477         case int(TestFormNum::Num36): return formId;
478         case int(TestFormNum::Num37): return formId;
479         case int(TestFormNum::Num38): return formId;
480         case int(TestFormNum::Num39): return formId;
481         case int(TestFormNum::Num40): return formId;
482         default: return formId;
483     }
484 }
485 
TestFormId7(int & formId)486 int FormUtil::TestFormId7(int &formId)
487 {
488     switch (formId) {
489         case int(TestFormNum::Num1): return formId;
490         case int(TestFormNum::Num2): return formId;
491         case int(TestFormNum::Num3): return formId;
492         case int(TestFormNum::Num4): return formId;
493         case int(TestFormNum::Num5): return formId;
494         case int(TestFormNum::Num6): return formId;
495         case int(TestFormNum::Num7): return formId;
496         case int(TestFormNum::Num8): return formId;
497         case int(TestFormNum::Num9): return formId;
498         case int(TestFormNum::Num10): return formId;
499         case int(TestFormNum::Num11): return formId;
500         case int(TestFormNum::Num12): return formId;
501         case int(TestFormNum::Num13): return formId;
502         case int(TestFormNum::Num14): return formId;
503         case int(TestFormNum::Num15): return formId;
504         case int(TestFormNum::Num16): return formId;
505         case int(TestFormNum::Num17): return formId;
506         case int(TestFormNum::Num18): return formId;
507         case int(TestFormNum::Num19): return formId;
508         case int(TestFormNum::Num20): return formId;
509         case int(TestFormNum::Num21): return formId;
510         case int(TestFormNum::Num22): return formId;
511         case int(TestFormNum::Num23): return formId;
512         case int(TestFormNum::Num24): return formId;
513         case int(TestFormNum::Num25): return formId;
514         case int(TestFormNum::Num26): return formId;
515         case int(TestFormNum::Num27): return formId;
516         case int(TestFormNum::Num28): return formId;
517         case int(TestFormNum::Num29): return formId;
518         case int(TestFormNum::Num30): return formId;
519         case int(TestFormNum::Num31): return formId;
520         case int(TestFormNum::Num32): return formId;
521         case int(TestFormNum::Num33): return formId;
522         case int(TestFormNum::Num34): return formId;
523         case int(TestFormNum::Num35): return formId;
524         case int(TestFormNum::Num36): return formId;
525         case int(TestFormNum::Num37): return formId;
526         case int(TestFormNum::Num38): return formId;
527         case int(TestFormNum::Num39): return formId;
528         case int(TestFormNum::Num40): return formId;
529         default: return formId;
530     }
531 }
532 
TestFormId8(int & formId)533 int FormUtil::TestFormId8(int &formId)
534 {
535     switch (formId) {
536         case int(TestFormNum::Num1): return formId;
537         case int(TestFormNum::Num2): return formId;
538         case int(TestFormNum::Num3): return formId;
539         case int(TestFormNum::Num4): return formId;
540         case int(TestFormNum::Num5): return formId;
541         case int(TestFormNum::Num6): return formId;
542         case int(TestFormNum::Num7): return formId;
543         case int(TestFormNum::Num8): return formId;
544         case int(TestFormNum::Num9): return formId;
545         case int(TestFormNum::Num10): return formId;
546         case int(TestFormNum::Num11): return formId;
547         case int(TestFormNum::Num12): return formId;
548         case int(TestFormNum::Num13): return formId;
549         case int(TestFormNum::Num14): return formId;
550         case int(TestFormNum::Num15): return formId;
551         case int(TestFormNum::Num16): return formId;
552         case int(TestFormNum::Num17): return formId;
553         case int(TestFormNum::Num18): return formId;
554         case int(TestFormNum::Num19): return formId;
555         case int(TestFormNum::Num20): return formId;
556         case int(TestFormNum::Num21): return formId;
557         case int(TestFormNum::Num22): return formId;
558         case int(TestFormNum::Num23): return formId;
559         case int(TestFormNum::Num24): return formId;
560         case int(TestFormNum::Num25): return formId;
561         case int(TestFormNum::Num26): return formId;
562         case int(TestFormNum::Num27): return formId;
563         case int(TestFormNum::Num28): return formId;
564         case int(TestFormNum::Num29): return formId;
565         case int(TestFormNum::Num30): return formId;
566         case int(TestFormNum::Num31): return formId;
567         case int(TestFormNum::Num32): return formId;
568         case int(TestFormNum::Num33): return formId;
569         case int(TestFormNum::Num34): return formId;
570         case int(TestFormNum::Num35): return formId;
571         case int(TestFormNum::Num36): return formId;
572         case int(TestFormNum::Num37): return formId;
573         case int(TestFormNum::Num38): return formId;
574         case int(TestFormNum::Num39): return formId;
575         case int(TestFormNum::Num40): return formId;
576         default: return formId;
577     }
578 }
579 
TestFormId9(int & formId)580 int FormUtil::TestFormId9(int &formId)
581 {
582     switch (formId) {
583         case int(TestFormNum::Num1): return formId;
584         case int(TestFormNum::Num2): return formId;
585         case int(TestFormNum::Num3): return formId;
586         case int(TestFormNum::Num4): return formId;
587         case int(TestFormNum::Num5): return formId;
588         case int(TestFormNum::Num6): return formId;
589         case int(TestFormNum::Num7): return formId;
590         case int(TestFormNum::Num8): return formId;
591         case int(TestFormNum::Num9): return formId;
592         case int(TestFormNum::Num10): return formId;
593         case int(TestFormNum::Num11): return formId;
594         case int(TestFormNum::Num12): return formId;
595         case int(TestFormNum::Num13): return formId;
596         case int(TestFormNum::Num14): return formId;
597         case int(TestFormNum::Num15): return formId;
598         case int(TestFormNum::Num16): return formId;
599         case int(TestFormNum::Num17): return formId;
600         case int(TestFormNum::Num18): return formId;
601         case int(TestFormNum::Num19): return formId;
602         case int(TestFormNum::Num20): return formId;
603         case int(TestFormNum::Num21): return formId;
604         case int(TestFormNum::Num22): return formId;
605         case int(TestFormNum::Num23): return formId;
606         case int(TestFormNum::Num24): return formId;
607         case int(TestFormNum::Num25): return formId;
608         case int(TestFormNum::Num26): return formId;
609         case int(TestFormNum::Num27): return formId;
610         case int(TestFormNum::Num28): return formId;
611         case int(TestFormNum::Num29): return formId;
612         case int(TestFormNum::Num30): return formId;
613         case int(TestFormNum::Num31): return formId;
614         case int(TestFormNum::Num32): return formId;
615         case int(TestFormNum::Num33): return formId;
616         case int(TestFormNum::Num34): return formId;
617         case int(TestFormNum::Num35): return formId;
618         case int(TestFormNum::Num36): return formId;
619         case int(TestFormNum::Num37): return formId;
620         case int(TestFormNum::Num38): return formId;
621         case int(TestFormNum::Num39): return formId;
622         case int(TestFormNum::Num40): return formId;
623         default: return formId;
624     }
625 }
626 
TestFormId10(int & formId)627 int FormUtil::TestFormId10(int &formId)
628 {
629     switch (formId) {
630         case int(TestFormNum::Num1): return formId;
631         case int(TestFormNum::Num2): return formId;
632         case int(TestFormNum::Num3): return formId;
633         case int(TestFormNum::Num4): return formId;
634         case int(TestFormNum::Num5): return formId;
635         case int(TestFormNum::Num6): return formId;
636         case int(TestFormNum::Num7): return formId;
637         case int(TestFormNum::Num8): return formId;
638         case int(TestFormNum::Num9): return formId;
639         case int(TestFormNum::Num10): return formId;
640         case int(TestFormNum::Num11): return formId;
641         case int(TestFormNum::Num12): return formId;
642         case int(TestFormNum::Num13): return formId;
643         case int(TestFormNum::Num14): return formId;
644         case int(TestFormNum::Num15): return formId;
645         case int(TestFormNum::Num16): return formId;
646         case int(TestFormNum::Num17): return formId;
647         case int(TestFormNum::Num18): return formId;
648         case int(TestFormNum::Num19): return formId;
649         case int(TestFormNum::Num20): return formId;
650         case int(TestFormNum::Num21): return formId;
651         case int(TestFormNum::Num22): return formId;
652         case int(TestFormNum::Num23): return formId;
653         case int(TestFormNum::Num24): return formId;
654         case int(TestFormNum::Num25): return formId;
655         case int(TestFormNum::Num26): return formId;
656         case int(TestFormNum::Num27): return formId;
657         case int(TestFormNum::Num28): return formId;
658         case int(TestFormNum::Num29): return formId;
659         case int(TestFormNum::Num30): return formId;
660         case int(TestFormNum::Num31): return formId;
661         case int(TestFormNum::Num32): return formId;
662         case int(TestFormNum::Num33): return formId;
663         case int(TestFormNum::Num34): return formId;
664         case int(TestFormNum::Num35): return formId;
665         case int(TestFormNum::Num36): return formId;
666         case int(TestFormNum::Num37): return formId;
667         case int(TestFormNum::Num38): return formId;
668         case int(TestFormNum::Num39): return formId;
669         case int(TestFormNum::Num40): return formId;
670         default: return formId;
671     }
672 }
673 
TestFormId11(int & formId)674 int FormUtil::TestFormId11(int &formId)
675 {
676     switch (formId) {
677         case int(TestFormNum::Num1): return formId;
678         case int(TestFormNum::Num2): return formId;
679         case int(TestFormNum::Num3): return formId;
680         case int(TestFormNum::Num4): return formId;
681         case int(TestFormNum::Num5): return formId;
682         case int(TestFormNum::Num6): return formId;
683         case int(TestFormNum::Num7): return formId;
684         case int(TestFormNum::Num8): return formId;
685         case int(TestFormNum::Num9): return formId;
686         case int(TestFormNum::Num10): return formId;
687         case int(TestFormNum::Num11): return formId;
688         case int(TestFormNum::Num12): return formId;
689         case int(TestFormNum::Num13): return formId;
690         case int(TestFormNum::Num14): return formId;
691         case int(TestFormNum::Num15): return formId;
692         case int(TestFormNum::Num16): return formId;
693         case int(TestFormNum::Num17): return formId;
694         case int(TestFormNum::Num18): return formId;
695         case int(TestFormNum::Num19): return formId;
696         case int(TestFormNum::Num20): return formId;
697         case int(TestFormNum::Num21): return formId;
698         case int(TestFormNum::Num22): return formId;
699         case int(TestFormNum::Num23): return formId;
700         case int(TestFormNum::Num24): return formId;
701         case int(TestFormNum::Num25): return formId;
702         case int(TestFormNum::Num26): return formId;
703         case int(TestFormNum::Num27): return formId;
704         case int(TestFormNum::Num28): return formId;
705         case int(TestFormNum::Num29): return formId;
706         case int(TestFormNum::Num30): return formId;
707         case int(TestFormNum::Num31): return formId;
708         case int(TestFormNum::Num32): return formId;
709         case int(TestFormNum::Num33): return formId;
710         case int(TestFormNum::Num34): return formId;
711         case int(TestFormNum::Num35): return formId;
712         case int(TestFormNum::Num36): return formId;
713         case int(TestFormNum::Num37): return formId;
714         case int(TestFormNum::Num38): return formId;
715         case int(TestFormNum::Num39): return formId;
716         case int(TestFormNum::Num40): return formId;
717         default: return formId;
718     }
719 }
720 
TestFormId12(int & formId)721 int FormUtil::TestFormId12(int &formId)
722 {
723     switch (formId) {
724         case int(TestFormNum::Num1): return formId;
725         case int(TestFormNum::Num2): return formId;
726         case int(TestFormNum::Num3): return formId;
727         case int(TestFormNum::Num4): return formId;
728         case int(TestFormNum::Num5): return formId;
729         case int(TestFormNum::Num6): return formId;
730         case int(TestFormNum::Num7): return formId;
731         case int(TestFormNum::Num8): return formId;
732         case int(TestFormNum::Num9): return formId;
733         case int(TestFormNum::Num10): return formId;
734         case int(TestFormNum::Num11): return formId;
735         case int(TestFormNum::Num12): return formId;
736         case int(TestFormNum::Num13): return formId;
737         case int(TestFormNum::Num14): return formId;
738         case int(TestFormNum::Num15): return formId;
739         case int(TestFormNum::Num16): return formId;
740         case int(TestFormNum::Num17): return formId;
741         case int(TestFormNum::Num18): return formId;
742         case int(TestFormNum::Num19): return formId;
743         case int(TestFormNum::Num20): return formId;
744         case int(TestFormNum::Num21): return formId;
745         case int(TestFormNum::Num22): return formId;
746         case int(TestFormNum::Num23): return formId;
747         case int(TestFormNum::Num24): return formId;
748         case int(TestFormNum::Num25): return formId;
749         case int(TestFormNum::Num26): return formId;
750         case int(TestFormNum::Num27): return formId;
751         case int(TestFormNum::Num28): return formId;
752         case int(TestFormNum::Num29): return formId;
753         case int(TestFormNum::Num30): return formId;
754         case int(TestFormNum::Num31): return formId;
755         case int(TestFormNum::Num32): return formId;
756         case int(TestFormNum::Num33): return formId;
757         case int(TestFormNum::Num34): return formId;
758         case int(TestFormNum::Num35): return formId;
759         case int(TestFormNum::Num36): return formId;
760         case int(TestFormNum::Num37): return formId;
761         case int(TestFormNum::Num38): return formId;
762         case int(TestFormNum::Num39): return formId;
763         case int(TestFormNum::Num40): return formId;
764         default: return formId;
765     }
766 }
767 
TestFormId13(int & formId)768 int FormUtil::TestFormId13(int &formId)
769 {
770     switch (formId) {
771         case int(TestFormNum::Num1): return formId;
772         case int(TestFormNum::Num2): return formId;
773         case int(TestFormNum::Num3): return formId;
774         case int(TestFormNum::Num4): return formId;
775         case int(TestFormNum::Num5): return formId;
776         case int(TestFormNum::Num6): return formId;
777         case int(TestFormNum::Num7): return formId;
778         case int(TestFormNum::Num8): return formId;
779         case int(TestFormNum::Num9): return formId;
780         case int(TestFormNum::Num10): return formId;
781         case int(TestFormNum::Num11): return formId;
782         case int(TestFormNum::Num12): return formId;
783         case int(TestFormNum::Num13): return formId;
784         case int(TestFormNum::Num14): return formId;
785         case int(TestFormNum::Num15): return formId;
786         case int(TestFormNum::Num16): return formId;
787         case int(TestFormNum::Num17): return formId;
788         case int(TestFormNum::Num18): return formId;
789         case int(TestFormNum::Num19): return formId;
790         case int(TestFormNum::Num20): return formId;
791         case int(TestFormNum::Num21): return formId;
792         case int(TestFormNum::Num22): return formId;
793         case int(TestFormNum::Num23): return formId;
794         case int(TestFormNum::Num24): return formId;
795         case int(TestFormNum::Num25): return formId;
796         case int(TestFormNum::Num26): return formId;
797         case int(TestFormNum::Num27): return formId;
798         case int(TestFormNum::Num28): return formId;
799         case int(TestFormNum::Num29): return formId;
800         case int(TestFormNum::Num30): return formId;
801         case int(TestFormNum::Num31): return formId;
802         case int(TestFormNum::Num32): return formId;
803         case int(TestFormNum::Num33): return formId;
804         case int(TestFormNum::Num34): return formId;
805         case int(TestFormNum::Num35): return formId;
806         case int(TestFormNum::Num36): return formId;
807         case int(TestFormNum::Num37): return formId;
808         case int(TestFormNum::Num38): return formId;
809         case int(TestFormNum::Num39): return formId;
810         case int(TestFormNum::Num40): return formId;
811         default: return formId;
812     }
813 }
814 
TestFormId14(int & formId)815 int FormUtil::TestFormId14(int &formId)
816 {
817     switch (formId) {
818         case int(TestFormNum::Num1): return formId;
819         case int(TestFormNum::Num2): return formId;
820         case int(TestFormNum::Num3): return formId;
821         case int(TestFormNum::Num4): return formId;
822         case int(TestFormNum::Num5): return formId;
823         case int(TestFormNum::Num6): return formId;
824         case int(TestFormNum::Num7): return formId;
825         case int(TestFormNum::Num8): return formId;
826         case int(TestFormNum::Num9): return formId;
827         case int(TestFormNum::Num10): return formId;
828         case int(TestFormNum::Num11): return formId;
829         case int(TestFormNum::Num12): return formId;
830         case int(TestFormNum::Num13): return formId;
831         case int(TestFormNum::Num14): return formId;
832         case int(TestFormNum::Num15): return formId;
833         case int(TestFormNum::Num16): return formId;
834         case int(TestFormNum::Num17): return formId;
835         case int(TestFormNum::Num18): return formId;
836         case int(TestFormNum::Num19): return formId;
837         case int(TestFormNum::Num20): return formId;
838         case int(TestFormNum::Num21): return formId;
839         case int(TestFormNum::Num22): return formId;
840         case int(TestFormNum::Num23): return formId;
841         case int(TestFormNum::Num24): return formId;
842         case int(TestFormNum::Num25): return formId;
843         case int(TestFormNum::Num26): return formId;
844         case int(TestFormNum::Num27): return formId;
845         case int(TestFormNum::Num28): return formId;
846         case int(TestFormNum::Num29): return formId;
847         case int(TestFormNum::Num30): return formId;
848         case int(TestFormNum::Num31): return formId;
849         case int(TestFormNum::Num32): return formId;
850         case int(TestFormNum::Num33): return formId;
851         case int(TestFormNum::Num34): return formId;
852         case int(TestFormNum::Num35): return formId;
853         case int(TestFormNum::Num36): return formId;
854         case int(TestFormNum::Num37): return formId;
855         case int(TestFormNum::Num38): return formId;
856         case int(TestFormNum::Num39): return formId;
857         case int(TestFormNum::Num40): return formId;
858         default: return formId;
859     }
860 }
861 
TestFormId15(int & formId)862 int FormUtil::TestFormId15(int &formId)
863 {
864     switch (formId) {
865         case int(TestFormNum::Num1): return formId;
866         case int(TestFormNum::Num2): return formId;
867         case int(TestFormNum::Num3): return formId;
868         case int(TestFormNum::Num4): return formId;
869         case int(TestFormNum::Num5): return formId;
870         case int(TestFormNum::Num6): return formId;
871         case int(TestFormNum::Num7): return formId;
872         case int(TestFormNum::Num8): return formId;
873         case int(TestFormNum::Num9): return formId;
874         case int(TestFormNum::Num10): return formId;
875         case int(TestFormNum::Num11): return formId;
876         case int(TestFormNum::Num12): return formId;
877         case int(TestFormNum::Num13): return formId;
878         case int(TestFormNum::Num14): return formId;
879         case int(TestFormNum::Num15): return formId;
880         case int(TestFormNum::Num16): return formId;
881         case int(TestFormNum::Num17): return formId;
882         case int(TestFormNum::Num18): return formId;
883         case int(TestFormNum::Num19): return formId;
884         case int(TestFormNum::Num20): return formId;
885         case int(TestFormNum::Num21): return formId;
886         case int(TestFormNum::Num22): return formId;
887         case int(TestFormNum::Num23): return formId;
888         case int(TestFormNum::Num24): return formId;
889         case int(TestFormNum::Num25): return formId;
890         case int(TestFormNum::Num26): return formId;
891         case int(TestFormNum::Num27): return formId;
892         case int(TestFormNum::Num28): return formId;
893         case int(TestFormNum::Num29): return formId;
894         case int(TestFormNum::Num30): return formId;
895         case int(TestFormNum::Num31): return formId;
896         case int(TestFormNum::Num32): return formId;
897         case int(TestFormNum::Num33): return formId;
898         case int(TestFormNum::Num34): return formId;
899         case int(TestFormNum::Num35): return formId;
900         case int(TestFormNum::Num36): return formId;
901         case int(TestFormNum::Num37): return formId;
902         case int(TestFormNum::Num38): return formId;
903         case int(TestFormNum::Num39): return formId;
904         case int(TestFormNum::Num40): return formId;
905         default: return formId;
906     }
907 }
908 
TestFormId16(int & formId)909 int FormUtil::TestFormId16(int &formId)
910 {
911     switch (formId) {
912         case int(TestFormNum::Num1): return formId;
913         case int(TestFormNum::Num2): return formId;
914         case int(TestFormNum::Num3): return formId;
915         case int(TestFormNum::Num4): return formId;
916         case int(TestFormNum::Num5): return formId;
917         case int(TestFormNum::Num6): return formId;
918         case int(TestFormNum::Num7): return formId;
919         case int(TestFormNum::Num8): return formId;
920         case int(TestFormNum::Num9): return formId;
921         case int(TestFormNum::Num10): return formId;
922         case int(TestFormNum::Num11): return formId;
923         case int(TestFormNum::Num12): return formId;
924         case int(TestFormNum::Num13): return formId;
925         case int(TestFormNum::Num14): return formId;
926         case int(TestFormNum::Num15): return formId;
927         case int(TestFormNum::Num16): return formId;
928         case int(TestFormNum::Num17): return formId;
929         case int(TestFormNum::Num18): return formId;
930         case int(TestFormNum::Num19): return formId;
931         case int(TestFormNum::Num20): return formId;
932         case int(TestFormNum::Num21): return formId;
933         case int(TestFormNum::Num22): return formId;
934         case int(TestFormNum::Num23): return formId;
935         case int(TestFormNum::Num24): return formId;
936         case int(TestFormNum::Num25): return formId;
937         case int(TestFormNum::Num26): return formId;
938         case int(TestFormNum::Num27): return formId;
939         case int(TestFormNum::Num28): return formId;
940         case int(TestFormNum::Num29): return formId;
941         case int(TestFormNum::Num30): return formId;
942         case int(TestFormNum::Num31): return formId;
943         case int(TestFormNum::Num32): return formId;
944         case int(TestFormNum::Num33): return formId;
945         case int(TestFormNum::Num34): return formId;
946         case int(TestFormNum::Num35): return formId;
947         case int(TestFormNum::Num36): return formId;
948         case int(TestFormNum::Num37): return formId;
949         case int(TestFormNum::Num38): return formId;
950         case int(TestFormNum::Num39): return formId;
951         case int(TestFormNum::Num40): return formId;
952         default: return formId;
953     }
954 }
955 
TestFormId17(int & formId)956 int FormUtil::TestFormId17(int &formId)
957 {
958     switch (formId) {
959         case int(TestFormNum::Num1): return formId;
960         case int(TestFormNum::Num2): return formId;
961         case int(TestFormNum::Num3): return formId;
962         case int(TestFormNum::Num4): return formId;
963         case int(TestFormNum::Num5): return formId;
964         case int(TestFormNum::Num6): return formId;
965         case int(TestFormNum::Num7): return formId;
966         case int(TestFormNum::Num8): return formId;
967         case int(TestFormNum::Num9): return formId;
968         case int(TestFormNum::Num10): return formId;
969         case int(TestFormNum::Num11): return formId;
970         case int(TestFormNum::Num12): return formId;
971         case int(TestFormNum::Num13): return formId;
972         case int(TestFormNum::Num14): return formId;
973         case int(TestFormNum::Num15): return formId;
974         case int(TestFormNum::Num16): return formId;
975         case int(TestFormNum::Num17): return formId;
976         case int(TestFormNum::Num18): return formId;
977         case int(TestFormNum::Num19): return formId;
978         case int(TestFormNum::Num20): return formId;
979         case int(TestFormNum::Num21): return formId;
980         case int(TestFormNum::Num22): return formId;
981         case int(TestFormNum::Num23): return formId;
982         case int(TestFormNum::Num24): return formId;
983         case int(TestFormNum::Num25): return formId;
984         case int(TestFormNum::Num26): return formId;
985         case int(TestFormNum::Num27): return formId;
986         case int(TestFormNum::Num28): return formId;
987         case int(TestFormNum::Num29): return formId;
988         case int(TestFormNum::Num30): return formId;
989         case int(TestFormNum::Num31): return formId;
990         case int(TestFormNum::Num32): return formId;
991         case int(TestFormNum::Num33): return formId;
992         case int(TestFormNum::Num34): return formId;
993         case int(TestFormNum::Num35): return formId;
994         case int(TestFormNum::Num36): return formId;
995         case int(TestFormNum::Num37): return formId;
996         case int(TestFormNum::Num38): return formId;
997         case int(TestFormNum::Num39): return formId;
998         case int(TestFormNum::Num40): return formId;
999         default: return formId;
1000     }
1001 }
1002 
TestFormId18(int & formId)1003 int FormUtil::TestFormId18(int &formId)
1004 {
1005     switch (formId) {
1006         case int(TestFormNum::Num1): return formId;
1007         case int(TestFormNum::Num2): return formId;
1008         case int(TestFormNum::Num3): return formId;
1009         case int(TestFormNum::Num4): return formId;
1010         case int(TestFormNum::Num5): return formId;
1011         case int(TestFormNum::Num6): return formId;
1012         case int(TestFormNum::Num7): return formId;
1013         case int(TestFormNum::Num8): return formId;
1014         case int(TestFormNum::Num9): return formId;
1015         case int(TestFormNum::Num10): return formId;
1016         case int(TestFormNum::Num11): return formId;
1017         case int(TestFormNum::Num12): return formId;
1018         case int(TestFormNum::Num13): return formId;
1019         case int(TestFormNum::Num14): return formId;
1020         case int(TestFormNum::Num15): return formId;
1021         case int(TestFormNum::Num16): return formId;
1022         case int(TestFormNum::Num17): return formId;
1023         case int(TestFormNum::Num18): return formId;
1024         case int(TestFormNum::Num19): return formId;
1025         case int(TestFormNum::Num20): return formId;
1026         case int(TestFormNum::Num21): return formId;
1027         case int(TestFormNum::Num22): return formId;
1028         case int(TestFormNum::Num23): return formId;
1029         case int(TestFormNum::Num24): return formId;
1030         case int(TestFormNum::Num25): return formId;
1031         case int(TestFormNum::Num26): return formId;
1032         case int(TestFormNum::Num27): return formId;
1033         case int(TestFormNum::Num28): return formId;
1034         case int(TestFormNum::Num29): return formId;
1035         case int(TestFormNum::Num30): return formId;
1036         case int(TestFormNum::Num31): return formId;
1037         case int(TestFormNum::Num32): return formId;
1038         case int(TestFormNum::Num33): return formId;
1039         case int(TestFormNum::Num34): return formId;
1040         case int(TestFormNum::Num35): return formId;
1041         case int(TestFormNum::Num36): return formId;
1042         case int(TestFormNum::Num37): return formId;
1043         case int(TestFormNum::Num38): return formId;
1044         case int(TestFormNum::Num39): return formId;
1045         case int(TestFormNum::Num40): return formId;
1046         default: return formId;
1047     }
1048 }
1049 
TestFormId19(int & formId)1050 int FormUtil::TestFormId19(int &formId)
1051 {
1052     switch (formId) {
1053         case int(TestFormNum::Num1): return formId;
1054         case int(TestFormNum::Num2): return formId;
1055         case int(TestFormNum::Num3): return formId;
1056         case int(TestFormNum::Num4): return formId;
1057         case int(TestFormNum::Num5): return formId;
1058         case int(TestFormNum::Num6): return formId;
1059         case int(TestFormNum::Num7): return formId;
1060         case int(TestFormNum::Num8): return formId;
1061         case int(TestFormNum::Num9): return formId;
1062         case int(TestFormNum::Num10): return formId;
1063         case int(TestFormNum::Num11): return formId;
1064         case int(TestFormNum::Num12): return formId;
1065         case int(TestFormNum::Num13): return formId;
1066         case int(TestFormNum::Num14): return formId;
1067         case int(TestFormNum::Num15): return formId;
1068         case int(TestFormNum::Num16): return formId;
1069         case int(TestFormNum::Num17): return formId;
1070         case int(TestFormNum::Num18): return formId;
1071         case int(TestFormNum::Num19): return formId;
1072         case int(TestFormNum::Num20): return formId;
1073         case int(TestFormNum::Num21): return formId;
1074         case int(TestFormNum::Num22): return formId;
1075         case int(TestFormNum::Num23): return formId;
1076         case int(TestFormNum::Num24): return formId;
1077         case int(TestFormNum::Num25): return formId;
1078         case int(TestFormNum::Num26): return formId;
1079         case int(TestFormNum::Num27): return formId;
1080         case int(TestFormNum::Num28): return formId;
1081         case int(TestFormNum::Num29): return formId;
1082         case int(TestFormNum::Num30): return formId;
1083         case int(TestFormNum::Num31): return formId;
1084         case int(TestFormNum::Num32): return formId;
1085         case int(TestFormNum::Num33): return formId;
1086         case int(TestFormNum::Num34): return formId;
1087         case int(TestFormNum::Num35): return formId;
1088         case int(TestFormNum::Num36): return formId;
1089         case int(TestFormNum::Num37): return formId;
1090         case int(TestFormNum::Num38): return formId;
1091         case int(TestFormNum::Num39): return formId;
1092         case int(TestFormNum::Num40): return formId;
1093         default: return formId;
1094     }
1095 }
1096 
TestFormId20(int & formId)1097 int FormUtil::TestFormId20(int &formId)
1098 {
1099     switch (formId) {
1100         case int(TestFormNum::Num1): return formId;
1101         case int(TestFormNum::Num2): return formId;
1102         case int(TestFormNum::Num3): return formId;
1103         case int(TestFormNum::Num4): return formId;
1104         case int(TestFormNum::Num5): return formId;
1105         case int(TestFormNum::Num6): return formId;
1106         case int(TestFormNum::Num7): return formId;
1107         case int(TestFormNum::Num8): return formId;
1108         case int(TestFormNum::Num9): return formId;
1109         case int(TestFormNum::Num10): return formId;
1110         case int(TestFormNum::Num11): return formId;
1111         case int(TestFormNum::Num12): return formId;
1112         case int(TestFormNum::Num13): return formId;
1113         case int(TestFormNum::Num14): return formId;
1114         case int(TestFormNum::Num15): return formId;
1115         case int(TestFormNum::Num16): return formId;
1116         case int(TestFormNum::Num17): return formId;
1117         case int(TestFormNum::Num18): return formId;
1118         case int(TestFormNum::Num19): return formId;
1119         case int(TestFormNum::Num20): return formId;
1120         case int(TestFormNum::Num21): return formId;
1121         case int(TestFormNum::Num22): return formId;
1122         case int(TestFormNum::Num23): return formId;
1123         case int(TestFormNum::Num24): return formId;
1124         case int(TestFormNum::Num25): return formId;
1125         case int(TestFormNum::Num26): return formId;
1126         case int(TestFormNum::Num27): return formId;
1127         case int(TestFormNum::Num28): return formId;
1128         case int(TestFormNum::Num29): return formId;
1129         case int(TestFormNum::Num30): return formId;
1130         case int(TestFormNum::Num31): return formId;
1131         case int(TestFormNum::Num32): return formId;
1132         case int(TestFormNum::Num33): return formId;
1133         case int(TestFormNum::Num34): return formId;
1134         case int(TestFormNum::Num35): return formId;
1135         case int(TestFormNum::Num36): return formId;
1136         case int(TestFormNum::Num37): return formId;
1137         case int(TestFormNum::Num38): return formId;
1138         case int(TestFormNum::Num39): return formId;
1139         case int(TestFormNum::Num40): return formId;
1140         default: return formId;
1141     }
1142 }
1143 
TestFormId21(int & formId)1144 int FormUtil::TestFormId21(int &formId)
1145 {
1146     switch (formId) {
1147         case int(TestFormNum::Num1): return formId;
1148         case int(TestFormNum::Num2): return formId;
1149         case int(TestFormNum::Num3): return formId;
1150         case int(TestFormNum::Num4): return formId;
1151         case int(TestFormNum::Num5): return formId;
1152         case int(TestFormNum::Num6): return formId;
1153         case int(TestFormNum::Num7): return formId;
1154         case int(TestFormNum::Num8): return formId;
1155         case int(TestFormNum::Num9): return formId;
1156         case int(TestFormNum::Num10): return formId;
1157         case int(TestFormNum::Num11): return formId;
1158         case int(TestFormNum::Num12): return formId;
1159         case int(TestFormNum::Num13): return formId;
1160         case int(TestFormNum::Num14): return formId;
1161         case int(TestFormNum::Num15): return formId;
1162         case int(TestFormNum::Num16): return formId;
1163         case int(TestFormNum::Num17): return formId;
1164         case int(TestFormNum::Num18): return formId;
1165         case int(TestFormNum::Num19): return formId;
1166         case int(TestFormNum::Num20): return formId;
1167         case int(TestFormNum::Num21): return formId;
1168         case int(TestFormNum::Num22): return formId;
1169         case int(TestFormNum::Num23): return formId;
1170         case int(TestFormNum::Num24): return formId;
1171         case int(TestFormNum::Num25): return formId;
1172         case int(TestFormNum::Num26): return formId;
1173         case int(TestFormNum::Num27): return formId;
1174         case int(TestFormNum::Num28): return formId;
1175         case int(TestFormNum::Num29): return formId;
1176         case int(TestFormNum::Num30): return formId;
1177         case int(TestFormNum::Num31): return formId;
1178         case int(TestFormNum::Num32): return formId;
1179         case int(TestFormNum::Num33): return formId;
1180         case int(TestFormNum::Num34): return formId;
1181         case int(TestFormNum::Num35): return formId;
1182         case int(TestFormNum::Num36): return formId;
1183         case int(TestFormNum::Num37): return formId;
1184         case int(TestFormNum::Num38): return formId;
1185         case int(TestFormNum::Num39): return formId;
1186         case int(TestFormNum::Num40): return formId;
1187         default: return formId;
1188     }
1189 }
1190 
TestFormId22(int & formId)1191 int FormUtil::TestFormId22(int &formId)
1192 {
1193     switch (formId) {
1194         case int(TestFormNum::Num1): return formId;
1195         case int(TestFormNum::Num2): return formId;
1196         case int(TestFormNum::Num3): return formId;
1197         case int(TestFormNum::Num4): return formId;
1198         case int(TestFormNum::Num5): return formId;
1199         case int(TestFormNum::Num6): return formId;
1200         case int(TestFormNum::Num7): return formId;
1201         case int(TestFormNum::Num8): return formId;
1202         case int(TestFormNum::Num9): return formId;
1203         case int(TestFormNum::Num10): return formId;
1204         case int(TestFormNum::Num11): return formId;
1205         case int(TestFormNum::Num12): return formId;
1206         case int(TestFormNum::Num13): return formId;
1207         case int(TestFormNum::Num14): return formId;
1208         case int(TestFormNum::Num15): return formId;
1209         case int(TestFormNum::Num16): return formId;
1210         case int(TestFormNum::Num17): return formId;
1211         case int(TestFormNum::Num18): return formId;
1212         case int(TestFormNum::Num19): return formId;
1213         case int(TestFormNum::Num20): return formId;
1214         case int(TestFormNum::Num21): return formId;
1215         case int(TestFormNum::Num22): return formId;
1216         case int(TestFormNum::Num23): return formId;
1217         case int(TestFormNum::Num24): return formId;
1218         case int(TestFormNum::Num25): return formId;
1219         case int(TestFormNum::Num26): return formId;
1220         case int(TestFormNum::Num27): return formId;
1221         case int(TestFormNum::Num28): return formId;
1222         case int(TestFormNum::Num29): return formId;
1223         case int(TestFormNum::Num30): return formId;
1224         case int(TestFormNum::Num31): return formId;
1225         case int(TestFormNum::Num32): return formId;
1226         case int(TestFormNum::Num33): return formId;
1227         case int(TestFormNum::Num34): return formId;
1228         case int(TestFormNum::Num35): return formId;
1229         case int(TestFormNum::Num36): return formId;
1230         case int(TestFormNum::Num37): return formId;
1231         case int(TestFormNum::Num38): return formId;
1232         case int(TestFormNum::Num39): return formId;
1233         case int(TestFormNum::Num40): return formId;
1234         default: return formId;
1235     }
1236 }
1237 
TestFormId23(int & formId)1238 int FormUtil::TestFormId23(int &formId)
1239 {
1240     switch (formId) {
1241         case int(TestFormNum::Num1): return formId;
1242         case int(TestFormNum::Num2): return formId;
1243         case int(TestFormNum::Num3): return formId;
1244         case int(TestFormNum::Num4): return formId;
1245         case int(TestFormNum::Num5): return formId;
1246         case int(TestFormNum::Num6): return formId;
1247         case int(TestFormNum::Num7): return formId;
1248         case int(TestFormNum::Num8): return formId;
1249         case int(TestFormNum::Num9): return formId;
1250         case int(TestFormNum::Num10): return formId;
1251         case int(TestFormNum::Num11): return formId;
1252         case int(TestFormNum::Num12): return formId;
1253         case int(TestFormNum::Num13): return formId;
1254         case int(TestFormNum::Num14): return formId;
1255         case int(TestFormNum::Num15): return formId;
1256         case int(TestFormNum::Num16): return formId;
1257         case int(TestFormNum::Num17): return formId;
1258         case int(TestFormNum::Num18): return formId;
1259         case int(TestFormNum::Num19): return formId;
1260         case int(TestFormNum::Num20): return formId;
1261         case int(TestFormNum::Num21): return formId;
1262         case int(TestFormNum::Num22): return formId;
1263         case int(TestFormNum::Num23): return formId;
1264         case int(TestFormNum::Num24): return formId;
1265         case int(TestFormNum::Num25): return formId;
1266         case int(TestFormNum::Num26): return formId;
1267         case int(TestFormNum::Num27): return formId;
1268         case int(TestFormNum::Num28): return formId;
1269         case int(TestFormNum::Num29): return formId;
1270         case int(TestFormNum::Num30): return formId;
1271         case int(TestFormNum::Num31): return formId;
1272         case int(TestFormNum::Num32): return formId;
1273         case int(TestFormNum::Num33): return formId;
1274         case int(TestFormNum::Num34): return formId;
1275         case int(TestFormNum::Num35): return formId;
1276         case int(TestFormNum::Num36): return formId;
1277         case int(TestFormNum::Num37): return formId;
1278         case int(TestFormNum::Num38): return formId;
1279         case int(TestFormNum::Num39): return formId;
1280         case int(TestFormNum::Num40): return formId;
1281         default: return formId;
1282     }
1283 }
1284 
TestFormId24(int & formId)1285 int FormUtil::TestFormId24(int &formId)
1286 {
1287     switch (formId) {
1288         case int(TestFormNum::Num1): return formId;
1289         case int(TestFormNum::Num2): return formId;
1290         case int(TestFormNum::Num3): return formId;
1291         case int(TestFormNum::Num4): return formId;
1292         case int(TestFormNum::Num5): return formId;
1293         case int(TestFormNum::Num6): return formId;
1294         case int(TestFormNum::Num7): return formId;
1295         case int(TestFormNum::Num8): return formId;
1296         case int(TestFormNum::Num9): return formId;
1297         case int(TestFormNum::Num10): return formId;
1298         case int(TestFormNum::Num11): return formId;
1299         case int(TestFormNum::Num12): return formId;
1300         case int(TestFormNum::Num13): return formId;
1301         case int(TestFormNum::Num14): return formId;
1302         case int(TestFormNum::Num15): return formId;
1303         case int(TestFormNum::Num16): return formId;
1304         case int(TestFormNum::Num17): return formId;
1305         case int(TestFormNum::Num18): return formId;
1306         case int(TestFormNum::Num19): return formId;
1307         case int(TestFormNum::Num20): return formId;
1308         case int(TestFormNum::Num21): return formId;
1309         case int(TestFormNum::Num22): return formId;
1310         case int(TestFormNum::Num23): return formId;
1311         case int(TestFormNum::Num24): return formId;
1312         case int(TestFormNum::Num25): return formId;
1313         case int(TestFormNum::Num26): return formId;
1314         case int(TestFormNum::Num27): return formId;
1315         case int(TestFormNum::Num28): return formId;
1316         case int(TestFormNum::Num29): return formId;
1317         case int(TestFormNum::Num30): return formId;
1318         case int(TestFormNum::Num31): return formId;
1319         case int(TestFormNum::Num32): return formId;
1320         case int(TestFormNum::Num33): return formId;
1321         case int(TestFormNum::Num34): return formId;
1322         case int(TestFormNum::Num35): return formId;
1323         case int(TestFormNum::Num36): return formId;
1324         case int(TestFormNum::Num37): return formId;
1325         case int(TestFormNum::Num38): return formId;
1326         case int(TestFormNum::Num39): return formId;
1327         case int(TestFormNum::Num40): return formId;
1328         default: return formId;
1329     }
1330 }
1331 
TestFormId25(int & formId)1332 int FormUtil::TestFormId25(int &formId)
1333 {
1334     switch (formId) {
1335         case int(TestFormNum::Num1): return formId;
1336         case int(TestFormNum::Num2): return formId;
1337         case int(TestFormNum::Num3): return formId;
1338         case int(TestFormNum::Num4): return formId;
1339         case int(TestFormNum::Num5): return formId;
1340         case int(TestFormNum::Num6): return formId;
1341         case int(TestFormNum::Num7): return formId;
1342         case int(TestFormNum::Num8): return formId;
1343         case int(TestFormNum::Num9): return formId;
1344         case int(TestFormNum::Num10): return formId;
1345         case int(TestFormNum::Num11): return formId;
1346         case int(TestFormNum::Num12): return formId;
1347         case int(TestFormNum::Num13): return formId;
1348         case int(TestFormNum::Num14): return formId;
1349         case int(TestFormNum::Num15): return formId;
1350         case int(TestFormNum::Num16): return formId;
1351         case int(TestFormNum::Num17): return formId;
1352         case int(TestFormNum::Num18): return formId;
1353         case int(TestFormNum::Num19): return formId;
1354         case int(TestFormNum::Num20): return formId;
1355         case int(TestFormNum::Num21): return formId;
1356         case int(TestFormNum::Num22): return formId;
1357         case int(TestFormNum::Num23): return formId;
1358         case int(TestFormNum::Num24): return formId;
1359         case int(TestFormNum::Num25): return formId;
1360         case int(TestFormNum::Num26): return formId;
1361         case int(TestFormNum::Num27): return formId;
1362         case int(TestFormNum::Num28): return formId;
1363         case int(TestFormNum::Num29): return formId;
1364         case int(TestFormNum::Num30): return formId;
1365         case int(TestFormNum::Num31): return formId;
1366         case int(TestFormNum::Num32): return formId;
1367         case int(TestFormNum::Num33): return formId;
1368         case int(TestFormNum::Num34): return formId;
1369         case int(TestFormNum::Num35): return formId;
1370         case int(TestFormNum::Num36): return formId;
1371         case int(TestFormNum::Num37): return formId;
1372         case int(TestFormNum::Num38): return formId;
1373         case int(TestFormNum::Num39): return formId;
1374         case int(TestFormNum::Num40): return formId;
1375         default: return formId;
1376     }
1377 }
1378 
TestFormId26(int & formId)1379 int FormUtil::TestFormId26(int &formId)
1380 {
1381     switch (formId) {
1382         case int(TestFormNum::Num1): return formId;
1383         case int(TestFormNum::Num2): return formId;
1384         case int(TestFormNum::Num3): return formId;
1385         case int(TestFormNum::Num4): return formId;
1386         case int(TestFormNum::Num5): return formId;
1387         case int(TestFormNum::Num6): return formId;
1388         case int(TestFormNum::Num7): return formId;
1389         case int(TestFormNum::Num8): return formId;
1390         case int(TestFormNum::Num9): return formId;
1391         case int(TestFormNum::Num10): return formId;
1392         case int(TestFormNum::Num11): return formId;
1393         case int(TestFormNum::Num12): return formId;
1394         case int(TestFormNum::Num13): return formId;
1395         case int(TestFormNum::Num14): return formId;
1396         case int(TestFormNum::Num15): return formId;
1397         case int(TestFormNum::Num16): return formId;
1398         case int(TestFormNum::Num17): return formId;
1399         case int(TestFormNum::Num18): return formId;
1400         case int(TestFormNum::Num19): return formId;
1401         case int(TestFormNum::Num20): return formId;
1402         case int(TestFormNum::Num21): return formId;
1403         case int(TestFormNum::Num22): return formId;
1404         case int(TestFormNum::Num23): return formId;
1405         case int(TestFormNum::Num24): return formId;
1406         case int(TestFormNum::Num25): return formId;
1407         case int(TestFormNum::Num26): return formId;
1408         case int(TestFormNum::Num27): return formId;
1409         case int(TestFormNum::Num28): return formId;
1410         case int(TestFormNum::Num29): return formId;
1411         case int(TestFormNum::Num30): return formId;
1412         case int(TestFormNum::Num31): return formId;
1413         case int(TestFormNum::Num32): return formId;
1414         case int(TestFormNum::Num33): return formId;
1415         case int(TestFormNum::Num34): return formId;
1416         case int(TestFormNum::Num35): return formId;
1417         case int(TestFormNum::Num36): return formId;
1418         case int(TestFormNum::Num37): return formId;
1419         case int(TestFormNum::Num38): return formId;
1420         case int(TestFormNum::Num39): return formId;
1421         case int(TestFormNum::Num40): return formId;
1422         default: return formId;
1423     }
1424 }
1425 
TestFormId27(int & formId)1426 int FormUtil::TestFormId27(int &formId)
1427 {
1428     switch (formId) {
1429         case int(TestFormNum::Num1): return formId;
1430         case int(TestFormNum::Num2): return formId;
1431         case int(TestFormNum::Num3): return formId;
1432         case int(TestFormNum::Num4): return formId;
1433         case int(TestFormNum::Num5): return formId;
1434         case int(TestFormNum::Num6): return formId;
1435         case int(TestFormNum::Num7): return formId;
1436         case int(TestFormNum::Num8): return formId;
1437         case int(TestFormNum::Num9): return formId;
1438         case int(TestFormNum::Num10): return formId;
1439         case int(TestFormNum::Num11): return formId;
1440         case int(TestFormNum::Num12): return formId;
1441         case int(TestFormNum::Num13): return formId;
1442         case int(TestFormNum::Num14): return formId;
1443         case int(TestFormNum::Num15): return formId;
1444         case int(TestFormNum::Num16): return formId;
1445         case int(TestFormNum::Num17): return formId;
1446         case int(TestFormNum::Num18): return formId;
1447         case int(TestFormNum::Num19): return formId;
1448         case int(TestFormNum::Num20): return formId;
1449         case int(TestFormNum::Num21): return formId;
1450         case int(TestFormNum::Num22): return formId;
1451         case int(TestFormNum::Num23): return formId;
1452         case int(TestFormNum::Num24): return formId;
1453         case int(TestFormNum::Num25): return formId;
1454         case int(TestFormNum::Num26): return formId;
1455         case int(TestFormNum::Num27): return formId;
1456         case int(TestFormNum::Num28): return formId;
1457         case int(TestFormNum::Num29): return formId;
1458         case int(TestFormNum::Num30): return formId;
1459         case int(TestFormNum::Num31): return formId;
1460         case int(TestFormNum::Num32): return formId;
1461         case int(TestFormNum::Num33): return formId;
1462         case int(TestFormNum::Num34): return formId;
1463         case int(TestFormNum::Num35): return formId;
1464         case int(TestFormNum::Num36): return formId;
1465         case int(TestFormNum::Num37): return formId;
1466         case int(TestFormNum::Num38): return formId;
1467         case int(TestFormNum::Num39): return formId;
1468         case int(TestFormNum::Num40): return formId;
1469         default: return formId;
1470     }
1471 }
1472 
TestFormId28(int & formId)1473 int FormUtil::TestFormId28(int &formId)
1474 {
1475     switch (formId) {
1476         case int(TestFormNum::Num1): return formId;
1477         case int(TestFormNum::Num2): return formId;
1478         case int(TestFormNum::Num3): return formId;
1479         case int(TestFormNum::Num4): return formId;
1480         case int(TestFormNum::Num5): return formId;
1481         case int(TestFormNum::Num6): return formId;
1482         case int(TestFormNum::Num7): return formId;
1483         case int(TestFormNum::Num8): return formId;
1484         case int(TestFormNum::Num9): return formId;
1485         case int(TestFormNum::Num10): return formId;
1486         case int(TestFormNum::Num11): return formId;
1487         case int(TestFormNum::Num12): return formId;
1488         case int(TestFormNum::Num13): return formId;
1489         case int(TestFormNum::Num14): return formId;
1490         case int(TestFormNum::Num15): return formId;
1491         case int(TestFormNum::Num16): return formId;
1492         case int(TestFormNum::Num17): return formId;
1493         case int(TestFormNum::Num18): return formId;
1494         case int(TestFormNum::Num19): return formId;
1495         case int(TestFormNum::Num20): return formId;
1496         case int(TestFormNum::Num21): return formId;
1497         case int(TestFormNum::Num22): return formId;
1498         case int(TestFormNum::Num23): return formId;
1499         case int(TestFormNum::Num24): return formId;
1500         case int(TestFormNum::Num25): return formId;
1501         case int(TestFormNum::Num26): return formId;
1502         case int(TestFormNum::Num27): return formId;
1503         case int(TestFormNum::Num28): return formId;
1504         case int(TestFormNum::Num29): return formId;
1505         case int(TestFormNum::Num30): return formId;
1506         case int(TestFormNum::Num31): return formId;
1507         case int(TestFormNum::Num32): return formId;
1508         case int(TestFormNum::Num33): return formId;
1509         case int(TestFormNum::Num34): return formId;
1510         case int(TestFormNum::Num35): return formId;
1511         case int(TestFormNum::Num36): return formId;
1512         case int(TestFormNum::Num37): return formId;
1513         case int(TestFormNum::Num38): return formId;
1514         case int(TestFormNum::Num39): return formId;
1515         case int(TestFormNum::Num40): return formId;
1516         default: return formId;
1517     }
1518 }
1519 
TestFormId29(int & formId)1520 int FormUtil::TestFormId29(int &formId)
1521 {
1522     switch (formId) {
1523         case int(TestFormNum::Num1): return formId;
1524         case int(TestFormNum::Num2): return formId;
1525         case int(TestFormNum::Num3): return formId;
1526         case int(TestFormNum::Num4): return formId;
1527         case int(TestFormNum::Num5): return formId;
1528         case int(TestFormNum::Num6): return formId;
1529         case int(TestFormNum::Num7): return formId;
1530         case int(TestFormNum::Num8): return formId;
1531         case int(TestFormNum::Num9): return formId;
1532         case int(TestFormNum::Num10): return formId;
1533         case int(TestFormNum::Num11): return formId;
1534         case int(TestFormNum::Num12): return formId;
1535         case int(TestFormNum::Num13): return formId;
1536         case int(TestFormNum::Num14): return formId;
1537         case int(TestFormNum::Num15): return formId;
1538         case int(TestFormNum::Num16): return formId;
1539         case int(TestFormNum::Num17): return formId;
1540         case int(TestFormNum::Num18): return formId;
1541         case int(TestFormNum::Num19): return formId;
1542         case int(TestFormNum::Num20): return formId;
1543         case int(TestFormNum::Num21): return formId;
1544         case int(TestFormNum::Num22): return formId;
1545         case int(TestFormNum::Num23): return formId;
1546         case int(TestFormNum::Num24): return formId;
1547         case int(TestFormNum::Num25): return formId;
1548         case int(TestFormNum::Num26): return formId;
1549         case int(TestFormNum::Num27): return formId;
1550         case int(TestFormNum::Num28): return formId;
1551         case int(TestFormNum::Num29): return formId;
1552         case int(TestFormNum::Num30): return formId;
1553         case int(TestFormNum::Num31): return formId;
1554         case int(TestFormNum::Num32): return formId;
1555         case int(TestFormNum::Num33): return formId;
1556         case int(TestFormNum::Num34): return formId;
1557         case int(TestFormNum::Num35): return formId;
1558         case int(TestFormNum::Num36): return formId;
1559         case int(TestFormNum::Num37): return formId;
1560         case int(TestFormNum::Num38): return formId;
1561         case int(TestFormNum::Num39): return formId;
1562         case int(TestFormNum::Num40): return formId;
1563         default: return formId;
1564     }
1565 }
1566 
TestFormId30(int & formId)1567 int FormUtil::TestFormId30(int &formId)
1568 {
1569     switch (formId) {
1570         case int(TestFormNum::Num1): return formId;
1571         case int(TestFormNum::Num2): return formId;
1572         case int(TestFormNum::Num3): return formId;
1573         case int(TestFormNum::Num4): return formId;
1574         case int(TestFormNum::Num5): return formId;
1575         case int(TestFormNum::Num6): return formId;
1576         case int(TestFormNum::Num7): return formId;
1577         case int(TestFormNum::Num8): return formId;
1578         case int(TestFormNum::Num9): return formId;
1579         case int(TestFormNum::Num10): return formId;
1580         case int(TestFormNum::Num11): return formId;
1581         case int(TestFormNum::Num12): return formId;
1582         case int(TestFormNum::Num13): return formId;
1583         case int(TestFormNum::Num14): return formId;
1584         case int(TestFormNum::Num15): return formId;
1585         case int(TestFormNum::Num16): return formId;
1586         case int(TestFormNum::Num17): return formId;
1587         case int(TestFormNum::Num18): return formId;
1588         case int(TestFormNum::Num19): return formId;
1589         case int(TestFormNum::Num20): return formId;
1590         case int(TestFormNum::Num21): return formId;
1591         case int(TestFormNum::Num22): return formId;
1592         case int(TestFormNum::Num23): return formId;
1593         case int(TestFormNum::Num24): return formId;
1594         case int(TestFormNum::Num25): return formId;
1595         case int(TestFormNum::Num26): return formId;
1596         case int(TestFormNum::Num27): return formId;
1597         case int(TestFormNum::Num28): return formId;
1598         case int(TestFormNum::Num29): return formId;
1599         case int(TestFormNum::Num30): return formId;
1600         case int(TestFormNum::Num31): return formId;
1601         case int(TestFormNum::Num32): return formId;
1602         case int(TestFormNum::Num33): return formId;
1603         case int(TestFormNum::Num34): return formId;
1604         case int(TestFormNum::Num35): return formId;
1605         case int(TestFormNum::Num36): return formId;
1606         case int(TestFormNum::Num37): return formId;
1607         case int(TestFormNum::Num38): return formId;
1608         case int(TestFormNum::Num39): return formId;
1609         case int(TestFormNum::Num40): return formId;
1610         default: return formId;
1611     }
1612 }
1613 
TestFormId31(int & formId)1614 int FormUtil::TestFormId31(int &formId)
1615 {
1616     switch (formId) {
1617         case int(TestFormNum::Num1): return formId;
1618         case int(TestFormNum::Num2): return formId;
1619         case int(TestFormNum::Num3): return formId;
1620         case int(TestFormNum::Num4): return formId;
1621         case int(TestFormNum::Num5): return formId;
1622         case int(TestFormNum::Num6): return formId;
1623         case int(TestFormNum::Num7): return formId;
1624         case int(TestFormNum::Num8): return formId;
1625         case int(TestFormNum::Num9): return formId;
1626         case int(TestFormNum::Num10): return formId;
1627         case int(TestFormNum::Num11): return formId;
1628         case int(TestFormNum::Num12): return formId;
1629         case int(TestFormNum::Num13): return formId;
1630         case int(TestFormNum::Num14): return formId;
1631         case int(TestFormNum::Num15): return formId;
1632         case int(TestFormNum::Num16): return formId;
1633         case int(TestFormNum::Num17): return formId;
1634         case int(TestFormNum::Num18): return formId;
1635         case int(TestFormNum::Num19): return formId;
1636         case int(TestFormNum::Num20): return formId;
1637         case int(TestFormNum::Num21): return formId;
1638         case int(TestFormNum::Num22): return formId;
1639         case int(TestFormNum::Num23): return formId;
1640         case int(TestFormNum::Num24): return formId;
1641         case int(TestFormNum::Num25): return formId;
1642         case int(TestFormNum::Num26): return formId;
1643         case int(TestFormNum::Num27): return formId;
1644         case int(TestFormNum::Num28): return formId;
1645         case int(TestFormNum::Num29): return formId;
1646         case int(TestFormNum::Num30): return formId;
1647         case int(TestFormNum::Num31): return formId;
1648         case int(TestFormNum::Num32): return formId;
1649         case int(TestFormNum::Num33): return formId;
1650         case int(TestFormNum::Num34): return formId;
1651         case int(TestFormNum::Num35): return formId;
1652         case int(TestFormNum::Num36): return formId;
1653         case int(TestFormNum::Num37): return formId;
1654         case int(TestFormNum::Num38): return formId;
1655         case int(TestFormNum::Num39): return formId;
1656         case int(TestFormNum::Num40): return formId;
1657         default: return formId;
1658     }
1659 }
1660 
TestFormId32(int & formId)1661 int FormUtil::TestFormId32(int &formId)
1662 {
1663     switch (formId) {
1664         case int(TestFormNum::Num1): return formId;
1665         case int(TestFormNum::Num2): return formId;
1666         case int(TestFormNum::Num3): return formId;
1667         case int(TestFormNum::Num4): return formId;
1668         case int(TestFormNum::Num5): return formId;
1669         case int(TestFormNum::Num6): return formId;
1670         case int(TestFormNum::Num7): return formId;
1671         case int(TestFormNum::Num8): return formId;
1672         case int(TestFormNum::Num9): return formId;
1673         case int(TestFormNum::Num10): return formId;
1674         case int(TestFormNum::Num11): return formId;
1675         case int(TestFormNum::Num12): return formId;
1676         case int(TestFormNum::Num13): return formId;
1677         case int(TestFormNum::Num14): return formId;
1678         case int(TestFormNum::Num15): return formId;
1679         case int(TestFormNum::Num16): return formId;
1680         case int(TestFormNum::Num17): return formId;
1681         case int(TestFormNum::Num18): return formId;
1682         case int(TestFormNum::Num19): return formId;
1683         case int(TestFormNum::Num20): return formId;
1684         case int(TestFormNum::Num21): return formId;
1685         case int(TestFormNum::Num22): return formId;
1686         case int(TestFormNum::Num23): return formId;
1687         case int(TestFormNum::Num24): return formId;
1688         case int(TestFormNum::Num25): return formId;
1689         case int(TestFormNum::Num26): return formId;
1690         case int(TestFormNum::Num27): return formId;
1691         case int(TestFormNum::Num28): return formId;
1692         case int(TestFormNum::Num29): return formId;
1693         case int(TestFormNum::Num30): return formId;
1694         case int(TestFormNum::Num31): return formId;
1695         case int(TestFormNum::Num32): return formId;
1696         case int(TestFormNum::Num33): return formId;
1697         case int(TestFormNum::Num34): return formId;
1698         case int(TestFormNum::Num35): return formId;
1699         case int(TestFormNum::Num36): return formId;
1700         case int(TestFormNum::Num37): return formId;
1701         case int(TestFormNum::Num38): return formId;
1702         case int(TestFormNum::Num39): return formId;
1703         case int(TestFormNum::Num40): return formId;
1704         default: return formId;
1705     }
1706 }
1707 
TestFormId33(int & formId)1708 int FormUtil::TestFormId33(int &formId)
1709 {
1710     switch (formId) {
1711         case int(TestFormNum::Num1): return formId;
1712         case int(TestFormNum::Num2): return formId;
1713         case int(TestFormNum::Num3): return formId;
1714         case int(TestFormNum::Num4): return formId;
1715         case int(TestFormNum::Num5): return formId;
1716         case int(TestFormNum::Num6): return formId;
1717         case int(TestFormNum::Num7): return formId;
1718         case int(TestFormNum::Num8): return formId;
1719         case int(TestFormNum::Num9): return formId;
1720         case int(TestFormNum::Num10): return formId;
1721         case int(TestFormNum::Num11): return formId;
1722         case int(TestFormNum::Num12): return formId;
1723         case int(TestFormNum::Num13): return formId;
1724         case int(TestFormNum::Num14): return formId;
1725         case int(TestFormNum::Num15): return formId;
1726         case int(TestFormNum::Num16): return formId;
1727         case int(TestFormNum::Num17): return formId;
1728         case int(TestFormNum::Num18): return formId;
1729         case int(TestFormNum::Num19): return formId;
1730         case int(TestFormNum::Num20): return formId;
1731         case int(TestFormNum::Num21): return formId;
1732         case int(TestFormNum::Num22): return formId;
1733         case int(TestFormNum::Num23): return formId;
1734         case int(TestFormNum::Num24): return formId;
1735         case int(TestFormNum::Num25): return formId;
1736         case int(TestFormNum::Num26): return formId;
1737         case int(TestFormNum::Num27): return formId;
1738         case int(TestFormNum::Num28): return formId;
1739         case int(TestFormNum::Num29): return formId;
1740         case int(TestFormNum::Num30): return formId;
1741         case int(TestFormNum::Num31): return formId;
1742         case int(TestFormNum::Num32): return formId;
1743         case int(TestFormNum::Num33): return formId;
1744         case int(TestFormNum::Num34): return formId;
1745         case int(TestFormNum::Num35): return formId;
1746         case int(TestFormNum::Num36): return formId;
1747         case int(TestFormNum::Num37): return formId;
1748         case int(TestFormNum::Num38): return formId;
1749         case int(TestFormNum::Num39): return formId;
1750         case int(TestFormNum::Num40): return formId;
1751         default: return formId;
1752     }
1753 }
1754 
TestFormId34(int & formId)1755 int FormUtil::TestFormId34(int &formId)
1756 {
1757     switch (formId) {
1758         case int(TestFormNum::Num1): return formId;
1759         case int(TestFormNum::Num2): return formId;
1760         case int(TestFormNum::Num3): return formId;
1761         case int(TestFormNum::Num4): return formId;
1762         case int(TestFormNum::Num5): return formId;
1763         case int(TestFormNum::Num6): return formId;
1764         case int(TestFormNum::Num7): return formId;
1765         case int(TestFormNum::Num8): return formId;
1766         case int(TestFormNum::Num9): return formId;
1767         case int(TestFormNum::Num10): return formId;
1768         case int(TestFormNum::Num11): return formId;
1769         case int(TestFormNum::Num12): return formId;
1770         case int(TestFormNum::Num13): return formId;
1771         case int(TestFormNum::Num14): return formId;
1772         case int(TestFormNum::Num15): return formId;
1773         case int(TestFormNum::Num16): return formId;
1774         case int(TestFormNum::Num17): return formId;
1775         case int(TestFormNum::Num18): return formId;
1776         case int(TestFormNum::Num19): return formId;
1777         case int(TestFormNum::Num20): return formId;
1778         case int(TestFormNum::Num21): return formId;
1779         case int(TestFormNum::Num22): return formId;
1780         case int(TestFormNum::Num23): return formId;
1781         case int(TestFormNum::Num24): return formId;
1782         case int(TestFormNum::Num25): return formId;
1783         case int(TestFormNum::Num26): return formId;
1784         case int(TestFormNum::Num27): return formId;
1785         case int(TestFormNum::Num28): return formId;
1786         case int(TestFormNum::Num29): return formId;
1787         case int(TestFormNum::Num30): return formId;
1788         case int(TestFormNum::Num31): return formId;
1789         case int(TestFormNum::Num32): return formId;
1790         case int(TestFormNum::Num33): return formId;
1791         case int(TestFormNum::Num34): return formId;
1792         case int(TestFormNum::Num35): return formId;
1793         case int(TestFormNum::Num36): return formId;
1794         case int(TestFormNum::Num37): return formId;
1795         case int(TestFormNum::Num38): return formId;
1796         case int(TestFormNum::Num39): return formId;
1797         case int(TestFormNum::Num40): return formId;
1798         default: return formId;
1799     }
1800 }
1801 
TestFormId35(int & formId)1802 int FormUtil::TestFormId35(int &formId)
1803 {
1804     switch (formId) {
1805         case int(TestFormNum::Num1): return formId;
1806         case int(TestFormNum::Num2): return formId;
1807         case int(TestFormNum::Num3): return formId;
1808         case int(TestFormNum::Num4): return formId;
1809         case int(TestFormNum::Num5): return formId;
1810         case int(TestFormNum::Num6): return formId;
1811         case int(TestFormNum::Num7): return formId;
1812         case int(TestFormNum::Num8): return formId;
1813         case int(TestFormNum::Num9): return formId;
1814         case int(TestFormNum::Num10): return formId;
1815         case int(TestFormNum::Num11): return formId;
1816         case int(TestFormNum::Num12): return formId;
1817         case int(TestFormNum::Num13): return formId;
1818         case int(TestFormNum::Num14): return formId;
1819         case int(TestFormNum::Num15): return formId;
1820         case int(TestFormNum::Num16): return formId;
1821         case int(TestFormNum::Num17): return formId;
1822         case int(TestFormNum::Num18): return formId;
1823         case int(TestFormNum::Num19): return formId;
1824         case int(TestFormNum::Num20): return formId;
1825         case int(TestFormNum::Num21): return formId;
1826         case int(TestFormNum::Num22): return formId;
1827         case int(TestFormNum::Num23): return formId;
1828         case int(TestFormNum::Num24): return formId;
1829         case int(TestFormNum::Num25): return formId;
1830         case int(TestFormNum::Num26): return formId;
1831         case int(TestFormNum::Num27): return formId;
1832         case int(TestFormNum::Num28): return formId;
1833         case int(TestFormNum::Num29): return formId;
1834         case int(TestFormNum::Num30): return formId;
1835         case int(TestFormNum::Num31): return formId;
1836         case int(TestFormNum::Num32): return formId;
1837         case int(TestFormNum::Num33): return formId;
1838         case int(TestFormNum::Num34): return formId;
1839         case int(TestFormNum::Num35): return formId;
1840         case int(TestFormNum::Num36): return formId;
1841         case int(TestFormNum::Num37): return formId;
1842         case int(TestFormNum::Num38): return formId;
1843         case int(TestFormNum::Num39): return formId;
1844         case int(TestFormNum::Num40): return formId;
1845         default: return formId;
1846     }
1847 }
1848 
1849 /**
1850  * @brief get current active account id.
1851  * @return int current active account id.
1852  */
GetCurrentAccountId()1853 int FormUtil::GetCurrentAccountId()
1854 {
1855     std::vector<int32_t> activeList;
1856     ErrCode errCode = DelayedSingleton<OsAccountManagerWrapper>::GetInstance()->QueryActiveOsAccountIds(activeList);
1857     if (errCode != ERR_OK) {
1858         HILOG_ERROR("QueryActiveOsAccountIds failed");
1859         return Constants::ANY_USERID;
1860     }
1861     if (activeList.empty()) {
1862         HILOG_ERROR("empty QueryActiveOsAccountIds,no accounts");
1863         return Constants::ANY_USERID;
1864     }
1865 
1866     return activeList.front();
1867 }
1868 
IsSACall()1869 bool FormUtil::IsSACall()
1870 {
1871     auto callerToken = IPCSkeleton::GetCallingTokenID();
1872     HILOG_DEBUG("callerToken : %{private}u", callerToken);
1873 
1874     auto tokenType = Security::AccessToken::AccessTokenKit::GetTokenTypeFlag(callerToken);
1875     if (tokenType == Security::AccessToken::ATokenTypeEnum::TOKEN_NATIVE) {
1876         HILOG_DEBUG("caller tokenType is native, verify success");
1877         return true;
1878     }
1879 
1880     if (IPCSkeleton::GetCallingUid() == SYSTEM_UID) {
1881         HILOG_DEBUG("callingUid is native,verify success");
1882         return true;
1883     }
1884 
1885     HILOG_DEBUG("call");
1886     return false;
1887 }
1888 
VerifyCallingPermission(const std::string & permissionName)1889 bool FormUtil::VerifyCallingPermission(const std::string &permissionName)
1890 {
1891     HILOG_DEBUG("call.permission name is:%{public}s", permissionName.c_str());
1892     auto callerToken = IPCSkeleton::GetCallingTokenID();
1893     int32_t ret = Security::AccessToken::AccessTokenKit::VerifyAccessToken(callerToken, permissionName);
1894     if (ret == Security::AccessToken::PermissionState::PERMISSION_DENIED) {
1895         HILOG_ERROR("permission %{public}s: PERMISSION_DENIED", permissionName.c_str());
1896         return false;
1897     }
1898     HILOG_DEBUG("Verify calling permission success");
1899     return true;
1900 }
1901 
ConvertStringToInt64(const std::string & strInfo,int64_t & int64Value)1902 bool FormUtil::ConvertStringToInt64(const std::string &strInfo, int64_t &int64Value)
1903 {
1904     size_t strLength = strInfo.size();
1905     if (strLength == ZERO_VALUE) {
1906         int64Value = ZERO_VALUE;
1907         return true;
1908     }
1909     std::regex pattern("^0|-?[1-9][0-9]{0,18}$"); // "^-?[0-9]{1,19}$"
1910     std::smatch match;
1911     if (regex_match(strInfo, match, pattern)) {
1912         HILOG_DEBUG("regex_match successed");
1913         if (strInfo.substr(ZERO_VALUE, ZERO_VALUE + 1) != "-") { // maximum: 9223372036854775807
1914             if (strLength < INT_64_LENGTH) {
1915                 int64Value = static_cast<int64_t>(ConvertStringToLongLong(strInfo));
1916                 return true;
1917             }
1918             int maxSubValue = ConvertStringToInt(strInfo.substr(ZERO_VALUE, ZERO_VALUE + 1));
1919             if (strLength == INT_64_LENGTH && maxSubValue < BASE_NUMBER) {
1920                 int64Value = static_cast<int64_t>(ConvertStringToLongLong(strInfo));
1921                 return true;
1922             }
1923             // Means 0x7FFFFFFFFFFFFFFF remove the first number:(2^63 - 1 - 9 * 10 ^ 19)
1924             int64_t subValue = static_cast<int64_t>(ConvertStringToLongLong(strInfo.substr(ZERO_VALUE + 1,
1925                 INT_64_LENGTH - 1)));
1926             if (strLength == INT_64_LENGTH && subValue <= (INT64_MAX - HEAD_BIT_NUM)) {
1927                 int64Value = static_cast<int64_t>(ConvertStringToLongLong(strInfo));
1928                 return true;
1929             }
1930             return false;
1931         }
1932         if (strLength < INT_64_LENGTH + 1) { // The minimum value: -9223372036854775808
1933             int64Value = static_cast<int64_t>(ConvertStringToLongLong(strInfo));
1934             return true;
1935         }
1936         if (strLength == INT_64_LENGTH + 1) {
1937             int minSubValue = ConvertStringToInt(strInfo.substr(1, 1));
1938             if (minSubValue < BASE_NUMBER) {
1939                 int64Value = static_cast<int64_t>(ConvertStringToLongLong(strInfo));
1940                 return true;
1941             }
1942 
1943             // Means 0x8000000000000000 remove the first number:-(2^63 - 9 * 10 ^ 19)
1944             int64_t subValue = static_cast<int64_t>(ConvertStringToLongLong(strInfo.substr(ZERO_VALUE + 2,
1945                 INT_64_LENGTH - 1)));
1946             if (subValue <= (INT64_MAX - HEAD_BIT_NUM + 1)) {
1947                 int64Value = ConvertStringToLongLong(strInfo);
1948                 return true;
1949             }
1950         }
1951     }
1952     HILOG_DEBUG("regex_match failed");
1953     return false;
1954 }
1955 
ConvertStringToInt(const std::string & strInfo,int radix)1956 int FormUtil::ConvertStringToInt(const std::string &strInfo, int radix)
1957 {
1958     return static_cast<int>(strtol(strInfo.c_str(), nullptr, radix));
1959 }
1960 
ConvertStringToLongLong(const std::string & strInfo,int radix)1961 long long FormUtil::ConvertStringToLongLong(const std::string &strInfo, int radix)
1962 {
1963     return static_cast<long long>(strtoll(strInfo.c_str(), nullptr, radix));
1964 }
1965 
IsActiveUser(const int32_t userId)1966 bool FormUtil::IsActiveUser(const int32_t userId)
1967 {
1968     std::vector<int32_t> activeList;
1969     auto errCode = DelayedSingleton<OsAccountManagerWrapper>::GetInstance()->QueryActiveOsAccountIds(activeList);
1970     auto iter = std::find(activeList.begin(), activeList.end(), userId);
1971     return iter != activeList.end() && errCode == ERR_OK;
1972 }
1973 } // namespace AppExecFwk
1974 } // namespace OHOS