#  版本更新信息
#  2024-12-30 15:32:11 未启用门不显示 [涉及到 门禁权限-添加删除, 实时监控, 上传设置]
#                      专业门禁管理系统 V9.32.241230 引入年月日 时间表明日期时间会好点  跟踪版本
#
####
if 82 - 82: Iii1i
import datetime
import platform
import threading
if 87 - 87: Ii % i1i1i1111I . Oo / OooOoo * I1Ii1I1 - I1I
from flask import Flask
from flask_cors import CORS
from flask_wtf import CSRFProtect
from waitress import serve
if 81 - 81: i1 + ooOOO / oOo0O00 * i1iiIII111 * IiIIii11Ii
import hooks
import vwAppConfig
from blueprints . wgcomm import bp as wgcomm_bp
from blueprints . wgcomm_center import bp as wgcomm_center_bp
from blueprints . wgcomm_console import bp as wgcomm_console_bp
from blueprints . wgcomm_extern_anti_back import bp as wgcomm_extern_anti_back_bp
from blueprints . wgcomm_extern_elevator import bp as wgcomm_extern_elevator_bp
from blueprints . wgcomm_extern_inter_lock import bp as wgcomm_extern_inter_lock_bp
from blueprints . wgcomm_extern_multi_card import bp as wgcomm_extern_multi_card_bp
from blueprints . wgcomm_extern_peripheral_control import bp as wgcomm_extern_peripheral_control_bp
from blueprints . wgcomm_extern_setup import bp as wgcomm_extern_setup_bp
from blueprints . wgcomm_extern_tasklist import bp as wgcomm_extern_tasklist_bp
from blueprints . wgcomm_face import bp as wgcomm_face_bp
from blueprints . wgcomm_help import bp as wgcomm_help_bp
from blueprints . wgcomm_pri import bp as wgcomm_priv_bp
if 84 - 84: ooo000 - Ooo0Ooo + iI1iII1I1I1i . IIiIIiIi11I1
from blueprints . wgcomm_realtimegetswipe import background_task_realtimegetswipe , background_task_wsudp , background_backup_db
if 98 - 98: I11iiIi11i1I % oOO
from blueprints . wgcomm_realtimegetswipe import bp as wgcomm_realtimeswipe_bp
if 31 - 31: i1I
if 9 - 9: IiI11Ii111 / oOo0O00 / IiIIii11Ii - I11iiIi11i1I - iI1iII1I1I1i
from blueprints . wgcomm_swipe import bp as wgcomm_swipe_bp
from blueprints . wgcomm_timeprofile import bp as wgcomm_timeprofile_bp
from blueprints . wgtool_1001config import bp as wgtool_1001config_bp
from exts import db , csrf
if 16 - 16: i1i1i1111I / i1iiIII111
from vwAppConfigParam import vwAppConfigParam , loadvw3000param
import os
if 3 - 3: i1 % i1 % i1i1i1111I . Ii * i1
if 9 - 9: i1iiIII111
if 10 - 10: ooOOO / IIiIIiIi11I1 * oOO / i1I / i1I
def fmtyyyymmdd ( val ) :
 return val . strftime ( "%Y-%m-%d" )
 if 61 - 61: Ooo0Ooo - I1I
 if 13 - 13: Ooo0Ooo
 if 46 - 46: iI1iII1I1I1i - Ii * Oo * Ii
def fmtyyyymmddhhmmss ( val ) :
 return val . strftime ( "%Y-%m-%d %H:%M:%S" )
 if 52 - 52: Oo + I1I / oOO / OooOoo - I1Ii1I1 - ooOOO
 if 60 - 60: iI1iII1I1I1i . oOO
def fmthhmmss ( val ) :
 return val . strftime ( "%H:%M:%S" )
 if 13 - 13: oOO
 if 2 - 2: i1
def fmthhmm ( val ) :
 return val . strftime ( "%H:%M" )
 if 22 - 22: IIiIIiIi11I1 - ooo000 / I1Ii1I1 . ooo000
 if 1 - 1: iI1iII1I1I1i + Ooo0Ooo + oOO * IIiIIiIi11I1
def fmtOneToFlag ( val ) :
 if val == 1 :
  iii111 = '√'
 else :
  iii111 = '-'
 return iii111
 if 8 - 8: Ii + i1I . I11iiIi11i1I - I1Ii1I1 % I11iiIi11i1I . i1i1i1111I
 if 24 - 24: IiI11Ii111
def in_string_list ( value , string_list ) :
 if 9 - 9: ooo000 / i1I . i1I / Ii % i1i1i1111I % Ooo0Ooo
 if string_list is None or string_list == '' :
  return False
 O00Oo = str ( value )
 O00O = string_list . split ( ',' )
 return O00Oo in O00O
 if 59 - 59: Iii1i . IiI11Ii111 - i1I
 if 13 - 13: oOO
vwAppConfigParam . bkrunning = 0
if 28 - 28: OooOoo + i1i1i1111I + IiIIii11Ii / I1Ii1I1 + iI1iII1I1I1i
if 70 - 70: IiI11Ii111 + I11iiIi11i1I * oOO . Oo + ooOOO / Oo
class FlaskApp ( Flask ) :
 def __init__ ( self , * args , ** kwargs ) :
  super ( FlaskApp , self ) . __init__ ( * args , ** kwargs )
  if 14 - 14: OooOoo % oOo0O00 + I1I % i1iiIII111 * ooOOO / I11iiIi11i1I
  if 63 - 63: i1i1i1111I . Ooo0Ooo * ooOOO
 def activate_background_job ( self ) :
  if 6 - 6: i1iiIII111
  if 99 - 99: ooOOO * I1Ii1I1
  if 95 - 95: Ooo0Ooo % Iii1i % i1i1i1111I . OooOoo
  print ( 'enable realtime getswipe\r\n' )
  vwAppConfig . vwlog ( 'enable realtime getswipe' )
  I1iIiiIIiIi = threading . Thread ( target = background_task_realtimegetswipe )
  I1iIiiIIiIi . start ( )
  i1I11ii = threading . Thread ( target = background_task_wsudp )
  i1I11ii . start ( )
  iii1II11 = threading . Thread ( target = background_backup_db )
  iii1II11 . start ( )
  if 32 - 32: Oo / Ii - IIiIIiIi11I1
  if 29 - 29: IiIIii11Ii - oOo0O00
app = FlaskApp ( __name__ )
if 30 - 30: I1I . ooo000
vwAppConfigParam . application = app
if 43 - 43: ooOOO . I11iiIi11i1I + ooo000
if 87 - 87: Iii1i + ooOOO . i1I / Ii + Oo
if 77 - 77: i1iiIII111 + IiI11Ii111 - Oo % ooo000
if 74 - 74: Ii + Ooo0Ooo
if 1 - 1: I1I % Ooo0Ooo + i1iiIII111 . i1iiIII111 % Oo
if 93 - 93: oOo0O00 % Ooo0Ooo * i1iiIII111
app . config [ 'SECRET_KEY' ] = "www.wiegand.com.cn"
app . config [ 'SQLALCHEMY_TRACE_MODIFICATIONS' ] = False
app . config [ 'PER_PAGE_COUNT' ] = 100
if 52 - 52: oOO + I1I / ooo000 - I1Ii1I1 * i1I % oOo0O00
if 52 - 52: oOo0O00 . I1I + i1I - i1iiIII111 % iI1iII1I1I1i
if 57 - 57: I1I * IIiIIiIi11I1 % I1Ii1I1 * i1i1i1111I
if 37 - 37: IiI11Ii111 * i1i1i1111I + oOo0O00 / I1I / OooOoo
if 4 - 4: i1
if 61 - 61: iI1iII1I1I1i . i1I - ooo000 / ooo000 - i1
try :
 vwAppConfigParam . wgcloudpathdir = os . path . dirname (
 os . path . abspath ( __file__ ) )
 if 19 - 19: Iii1i * Ooo0Ooo . I1Ii1I1 / I11iiIi11i1I * Ii - oOO
 if '/' in vwAppConfigParam . wgcloudpathdir :
  vwAppConfigParam . wgcloudpathdir = vwAppConfigParam . wgcloudpathdir + "/"
  vwAppConfigParam . wgcloudphotodir = vwAppConfigParam . wgcloudpathdir + "static/photo/"
 else :
  vwAppConfigParam . wgcloudpathdir = vwAppConfigParam . wgcloudpathdir + "\\"
  vwAppConfigParam . wgcloudphotodir = vwAppConfigParam . wgcloudpathdir + "static\\photo\\"
 vwAppConfigParam . wgcloudpath1001configfileName = '{}wgconfig.ini' . format ( vwAppConfigParam . wgcloudpathdir )
 vwAppConfigParam . wgcloudpath1001vw_logName = '{}vw_log.log' . format (
 vwAppConfigParam . wgcloudpathdir )
except Exception as ex2 :
 print ( ex2 )
 if 32 - 32: iI1iII1I1I1i
 if 18 - 18: I11iiIi11i1I * IiI11Ii111 % iI1iII1I1I1i + IiI11Ii111
 if 93 - 93: oOO - I1Ii1I1 - IIiIIiIi11I1 * ooOOO - i1
 if 82 - 82: IIiIIiIi11I1 % i1 * ooOOO
 if 57 - 57: oOo0O00
if vwAppConfigParam . bmysql :
 if 31 - 31: i1iiIII111 + i1i1i1111I % OooOoo
 app . config [ 'SQLALCHEMY_DATABASE_URI' ] = "mysql+pymysql://root:root@127.0.0.1:3306/iccard?charset=utf8mb4"
else :
 if 20 - 20: OooOoo - I1I
 if 9 - 9: i1iiIII111 - iI1iII1I1I1i % Ii - I1I
 if 54 - 54: Iii1i % ooo000 % Iii1i - IiIIii11Ii
 if 39 - 39: oOO - oOO * i1 % IIiIIiIi11I1
 if 29 - 29: IIiIIiIi11I1 - ooo000 . i1iiIII111
 pathdir = vwAppConfigParam . wgcloudpathdir [ 0 : - 1 ]
 if 86 - 86: I1Ii1I1 - OooOoo - oOO % ooo000 . i1I % Iii1i
 if 11 - 11: OooOoo - I1Ii1I1 - ooOOO . i1iiIII111 - iI1iII1I1I1i / i1iiIII111
 if 44 - 44: Ooo0Ooo + i1i1i1111I + Iii1i - oOO
 app . config [ 'SQLALCHEMY_DATABASE_URI' ] = 'sqlite:///{}/db/sql3iccard.db?check_same_thread=False' . format ( pathdir )
 dbfilename = '{}/db/sql3iccard.db' . format ( pathdir )
 sql3iccard20231215 = '{}/static/wgcomm/sql3iccard20231215.db' . format ( pathdir )
 if 7 - 7: i1i1i1111I / Ii * Iii1i
 if str ( platform . system ( ) . lower ( ) ) == 'windows' :
  if 32 - 32: IiI11Ii111 . OooOoo
  if 31 - 31: Oo - i1I
  app . config [ 'SQLALCHEMY_DATABASE_URI' ] = 'sqlite:///{}\\db\\sql3iccard.db?check_same_thread=False' . format (
 pathdir )
  if 28 - 28: ooOOO * I1Ii1I1 + IiI11Ii111 % Oo
  dbfilename = '{}\\db\\sql3iccard.db' . format ( pathdir )
  sql3iccard20231215 = '{}\\static\\wgcomm\\sql3iccard20231215.db' . format ( pathdir )
  if 100 - 100: Oo + i1I
  if 4 - 4: ooo000 % I1I - i1i1i1111I
  if 76 - 76: i1 * oOo0O00 . IiI11Ii111 * i1I . IiIIii11Ii . oOO
  if 55 - 55: i1i1i1111I + i1iiIII111 % Ooo0Ooo . Oo - IiIIii11Ii - iI1iII1I1I1i
  if 91 - 91: I1Ii1I1 - I11iiIi11i1I
  if 84 - 84: oOO % iI1iII1I1I1i - Ooo0Ooo
  if 94 - 94: i1iiIII111 + i1i1i1111I / iI1iII1I1I1i + iI1iII1I1I1i / i1I
  if 79 - 79: i1iiIII111 - IIiIIiIi11I1 . I1Ii1I1 + I1I - ooOOO + i1iiIII111
  if 36 - 36: ooOOO * Iii1i % I1I % i1 . Ooo0Ooo
  if 63 - 63: IIiIIiIi11I1 / IIiIIiIi11I1 * Iii1i - oOo0O00 . i1
  if 52 - 52: oOo0O00 / i1I * IIiIIiIi11I1 + I11iiIi11i1I % Ooo0Ooo + oOO
  if 43 - 43: iI1iII1I1I1i * oOo0O00 + ooOOO
  if 30 - 30: I1I
  if 41 - 41: oOO
  if 98 - 98: I1I / IIiIIiIi11I1 / i1I + IiI11Ii111 % Oo + I1I
  if 38 - 38: I1Ii1I1 + oOo0O00
 app . config [ 'SQLALCHEMY_TRACK_MODIFICATIONS' ] = False
 import shutil
 if 2 - 2: OooOoo % Ii + oOO . OooOoo + IIiIIiIi11I1 * Oo
 try :
  shutil . copyfile ( dbfilename , dbfilename [ 0 : len ( dbfilename ) - 3 ] + (
 datetime . datetime . now ( ) . strftime ( "%Y%m%d_%H%M%S" ) ) + ".bak" )
 except Exception as ex :
  if 2 - 2: IIiIIiIi11I1 + iI1iII1I1I1i - I1Ii1I1 + ooOOO . IIiIIiIi11I1
  try :
   shutil . copyfile ( sql3iccard20231215 , dbfilename )
  except Exception as ex2 :
   print ( ex2 )
   if 15 - 15: ooo000
   if 63 - 63: i1I
app . add_template_filter ( fmtyyyymmdd , 'ymd' )
app . add_template_filter ( fmtyyyymmddhhmmss , 'ymdhms' )
app . add_template_filter ( fmthhmmss , 'hms' )
app . add_template_filter ( fmthhmm , 'hm' )
app . add_template_filter ( fmtOneToFlag , 'OneToFlag' )
app . add_template_filter ( in_string_list , 'in_string_list' )
if 81 - 81: OooOoo . i1I / i1i1i1111I + Oo / Ooo0Ooo % IiI11Ii111
db . init_app ( app )
if 77 - 77: I11iiIi11i1I / iI1iII1I1I1i - oOo0O00 - Ooo0Ooo % oOo0O00
if 73 - 73: IiI11Ii111 . Oo * I1I / i1i1i1111I + I1Ii1I1
if 31 - 31: i1i1i1111I % I1Ii1I1
if 1 - 1: IiI11Ii111 - oOo0O00 - i1 . oOo0O00
if 91 - 91: iI1iII1I1I1i * i1 . ooOOO
csrf . init_app ( app )
if 81 - 81: I1I * Oo - i1 % OooOoo * ooOOO
if 19 - 19: Ii
CORS ( app )
if 22 - 22: i1I % iI1iII1I1I1i + Oo
if 60 - 60: ooo000 + I11iiIi11i1I + IIiIIiIi11I1 % i1i1i1111I - Ii % Ooo0Ooo
app . register_blueprint ( wgcomm_bp )
app . register_blueprint ( wgcomm_priv_bp )
app . register_blueprint ( wgcomm_console_bp )
app . register_blueprint ( wgcomm_center_bp )
app . register_blueprint ( wgcomm_swipe_bp )
app . register_blueprint ( wgcomm_timeprofile_bp )
app . register_blueprint ( wgcomm_help_bp )
app . register_blueprint ( wgcomm_realtimeswipe_bp )
app . register_blueprint ( wgcomm_face_bp )
if 95 - 95: ooOOO % i1i1i1111I . i1
app . register_blueprint ( wgtool_1001config_bp )
app . register_blueprint ( wgcomm_extern_multi_card_bp )
app . register_blueprint ( wgcomm_extern_setup_bp )
app . register_blueprint ( wgcomm_extern_peripheral_control_bp )
app . register_blueprint ( wgcomm_extern_inter_lock_bp )
app . register_blueprint ( wgcomm_extern_anti_back_bp )
if 87 - 87: Iii1i % ooOOO * Ii % IIiIIiIi11I1 / I11iiIi11i1I
app . register_blueprint ( wgcomm_extern_tasklist_bp )
app . register_blueprint ( wgcomm_extern_elevator_bp )
if 84 - 84: I1Ii1I1 + Ooo0Ooo % IIiIIiIi11I1 * i1i1i1111I
if 61 - 61: i1iiIII111 - Oo + I1Ii1I1
if 43 - 43: IIiIIiIi11I1 * ooo000 + Ii % iI1iII1I1I1i
if 12 - 12: i1iiIII111 + ooo000 . I11iiIi11i1I
if 1 - 1: iI1iII1I1I1i % Ii - I11iiIi11i1I / IiI11Ii111 + iI1iII1I1I1i - Ii
if 27 - 27: OooOoo % iI1iII1I1I1i + IIiIIiIi11I1
if 16 - 16: IiI11Ii111
app . before_request ( hooks . wgcomm_before_request )
app . errorhandler ( 401 ) ( hooks . wgcomm_401_error )
app . errorhandler ( 404 ) ( hooks . wgcomm_404_error )
app . errorhandler ( 500 ) ( hooks . wgcomm_500_error )
if 31 - 31: oOo0O00 / Iii1i % Ooo0Ooo % i1 . iI1iII1I1I1i . Oo
if 83 - 83: oOo0O00 - I11iiIi11i1I
CSRFProtect ( app )
if 91 - 91: IIiIIiIi11I1 - i1 - iI1iII1I1I1i
if 71 - 71: I1I - IiI11Ii111
print ( "Vw3000 startup..." )
print ( "http://localhost:61085" )
if 66 - 66: i1i1i1111I / Ooo0Ooo + I11iiIi11i1I + Iii1i + oOo0O00 + i1I
if 75 - 75: OooOoo - oOO - IiIIii11Ii - oOO + ooo000 % iI1iII1I1I1i
if 42 - 42: i1 * i1I
if 50 - 50: Ii - i1iiIII111
if 96 - 96: ooo000 * OooOoo - Ii - OooOoo
if 65 - 65: Oo + Oo - iI1iII1I1I1i % OooOoo . Ooo0Ooo
if 84 - 84: IIiIIiIi11I1 . ooOOO
if 44 - 44: ooo000 * i1i1i1111I * oOO + i1iiIII111 - IIiIIiIi11I1
if 70 - 70: IiI11Ii111
if 9 - 9: oOo0O00 * i1
if 96 - 96: Ooo0Ooo
if 13 - 13: Oo * I1Ii1I1 - oOo0O00 * Ii . Ii + oOo0O00
if 46 - 46: OooOoo - I11iiIi11i1I / Ooo0Ooo
if 73 - 73: I1Ii1I1 / i1i1i1111I / ooo000 % i1 % i1I - OooOoo
if 30 - 30: ooOOO * ooOOO - Iii1i * iI1iII1I1I1i
if 37 - 37: I1Ii1I1 % iI1iII1I1I1i . i1I + Ooo0Ooo + ooOOO * iI1iII1I1I1i
if 39 - 39: IIiIIiIi11I1 - Oo
if 31 - 31: IiIIii11Ii % oOo0O00 % oOo0O00 * Iii1i
if 85 - 85: Iii1i + Ii % IIiIIiIi11I1 % oOo0O00
if 100 - 100: IiIIii11Ii % i1
if 82 - 82: ooOOO % OooOoo
if 81 - 81: Ii
if 40 - 40: i1I . OooOoo + oOo0O00 . i1iiIII111
if 96 - 96: I1I / oOO / I11iiIi11i1I + I11iiIi11i1I
if 35 - 35: IIiIIiIi11I1 + oOo0O00
if 96 - 96: iI1iII1I1I1i . OooOoo . i1
if 87 - 87: ooo000 * IiIIii11Ii % ooo000 . ooOOO . Oo % iI1iII1I1I1i
if 48 - 48: ooOOO * ooo000 % IiIIii11Ii * i1 . Iii1i - IiI11Ii111
if 72 - 72: i1 % i1i1i1111I * iI1iII1I1I1i
if 90 - 90: Ooo0Ooo * OooOoo . Ii
if 5 - 5: Oo - i1 . oOO
if 18 - 18: IiIIii11Ii - oOO * i1I - OooOoo
if 54 - 54: IIiIIiIi11I1 . Ooo0Ooo % Ii + IiIIii11Ii * iI1iII1I1I1i / iI1iII1I1I1i
if 31 - 31: IiIIii11Ii . IiIIii11Ii % Ii
if 51 - 51: Oo / i1i1i1111I - I1I
if 83 - 83: Iii1i % i1iiIII111 . OooOoo / I1I % oOO . I1I
if 76 - 76: i1iiIII111 / OooOoo
if 77 - 77: ooOOO
if 19 - 19: ooOOO % I1Ii1I1
if 15 - 15: OooOoo . IiIIii11Ii . i1I / Iii1i + ooOOO / Ii
if 17 - 17: I11iiIi11i1I - i1i1i1111I . iI1iII1I1I1i - I11iiIi11i1I + Oo % iI1iII1I1I1i
if 65 - 65: Ii % I11iiIi11i1I
vwAppConfigParam . ver = "Vw3000 v9.33 2025-02-10"
vwAppConfigParam . ver = "Vw3000 v9.35 2026-01-13"
if 39 - 39: Iii1i * IIiIIiIi11I1 . Ooo0Ooo - Oo
if 63 - 63: i1i1i1111I - i1iiIII111 . OooOoo % OooOoo . IiI11Ii111 + i1I
if 71 - 71: ooo000 + I11iiIi11i1I % iI1iII1I1I1i + IiI11Ii111 % Oo - Oo
if 84 - 84: I1I % iI1iII1I1I1i - Ooo0Ooo / iI1iII1I1I1i + Ooo0Ooo - Oo
if 41 - 41: ooOOO + OooOoo + IIiIIiIi11I1 * i1i1i1111I
if 12 - 12: i1i1i1111I
if 56 - 56: IiIIii11Ii
if 17 - 17: i1I . oOO % Oo + IiIIii11Ii - Ooo0Ooo
if 93 - 93: oOo0O00
if 77 - 77: Oo + I11iiIi11i1I % I1I
if 20 - 20: i1 - IiIIii11Ii . IiIIii11Ii % ooOOO . i1 % Ooo0Ooo
if 72 - 72: oOO % IiI11Ii111 . ooOOO * I1Ii1I1 . ooOOO
if 90 - 90: IiIIii11Ii + I1Ii1I1 . OooOoo
if 73 - 73: i1i1i1111I - Iii1i / I11iiIi11i1I . ooo000 / iI1iII1I1I1i - i1iiIII111
if 21 - 21: i1iiIII111 + IiI11Ii111 % i1i1i1111I
if 7 - 7: IiI11Ii111 / Ii
if 87 - 87: ooOOO
if 57 - 57: IIiIIiIi11I1 - iI1iII1I1I1i % ooOOO - I11iiIi11i1I / IiIIii11Ii . Ooo0Ooo
if 15 - 15: i1I * I11iiIi11i1I - oOo0O00
if 6 - 6: IiI11Ii111 - Ii
if 1 - 1: I1I + OooOoo
try :
 if 98 - 98: i1iiIII111 + Iii1i . IIiIIiIi11I1
 import socket
 if 96 - 96: OooOoo / oOO - i1 * I11iiIi11i1I
 hostname = socket . gethostname ( )
 if hostname in vwAppConfigParam . SingleBoardPCNameList :
  vwAppConfigParam . extfunc5678_RealtimeGetSwipe = 0
  vwAppConfigParam . bSingleBoardPC = True
  if 72 - 72: i1i1i1111I + Ii - Iii1i - i1i1i1111I - i1I + Ooo0Ooo
except Exception as e :
 print ( e )
 pass
 if 74 - 74: Ooo0Ooo * Oo + Iii1i - i1iiIII111
loadvw3000param ( )
if 22 - 22: IiIIii11Ii - Ooo0Ooo . i1 . i1I - ooo000
if 68 - 68: ooo000
if 40 - 40: i1 + I1Ii1I1 + I11iiIi11i1I . Oo * I11iiIi11i1I % I1I
if 100 - 100: OooOoo + Oo / OooOoo
if 33 - 33: IiI11Ii111 / OooOoo
if 98 - 98: I1Ii1I1 . IIiIIiIi11I1 * i1I - iI1iII1I1I1i % i1I * IiI11Ii111
if 42 - 42: OooOoo + i1i1i1111I - iI1iII1I1I1i - oOo0O00 * i1I + Ii
if 46 - 46: oOo0O00 . iI1iII1I1I1i - Ii . oOo0O00 + i1i1i1111I
if 83 - 83: IiI11Ii111
if 77 - 77: iI1iII1I1I1i - oOO % Ii * i1I - I1I
if 42 - 42: I11iiIi11i1I - Ii / Oo - i1i1i1111I + I11iiIi11i1I
if 83 - 83: i1 . iI1iII1I1I1i
if 57 - 57: IiI11Ii111 % IiIIii11Ii / oOo0O00 + Ooo0Ooo - i1iiIII111
if 87 - 87: i1iiIII111 . i1iiIII111 . oOO . ooo000 * oOo0O00
if 33 - 33: IiI11Ii111 * i1iiIII111 / i1I . OooOoo * oOo0O00 + ooo000
if 17 - 17: i1i1i1111I * oOO + i1iiIII111 - I11iiIi11i1I / i1i1i1111I
if 83 - 83: I11iiIi11i1I - Iii1i + oOo0O00 + I1I / IIiIIiIi11I1 + I1I
if 29 - 29: i1i1i1111I / oOo0O00
if 13 - 13: I11iiIi11i1I % i1iiIII111 . OooOoo % ooo000 % OooOoo
if 21 - 21: IiI11Ii111 * I1Ii1I1
if 93 - 93: Ooo0Ooo . i1 + IiI11Ii111 - oOo0O00
if 97 - 97: i1 - i1 % IIiIIiIi11I1 + IiIIii11Ii / i1I * iI1iII1I1I1i
if 60 - 60: I11iiIi11i1I - Ooo0Ooo % I1Ii1I1
if 26 - 26: ooOOO / IIiIIiIi11I1 . oOO + I11iiIi11i1I . Oo
if 37 - 37: I1Ii1I1
if 35 - 35: OooOoo % i1i1i1111I - iI1iII1I1I1i / IiIIii11Ii
if 4 - 4: ooo000 . IiIIii11Ii % ooo000 / i1i1i1111I
if 48 - 48: i1iiIII111 . Oo
if 92 - 92: OooOoo + Ii / IIiIIiIi11I1 + OooOoo * IIiIIiIi11I1 * iI1iII1I1I1i
if 79 - 79: i1i1i1111I
if 3 - 3: OooOoo / IiI11Ii111 % I11iiIi11i1I
if 55 - 55: oOo0O00
if 31 - 31: Ii . Ooo0Ooo / IiI11Ii111
if vwAppConfigParam . extfunc5678_RealtimeGetSwipe > 0 :
 app . activate_background_job ( )
 if 59 - 59: Oo
if 1 > 0 :
 if 64 - 64: Iii1i % I11iiIi11i1I * i1 % OooOoo * oOo0O00
 if 55 - 55: IiI11Ii111
 if 46 - 46: Ooo0Ooo % I1Ii1I1
 serve ( app , host = '0.0.0.0' , port = 61085 , threads = 50 )
# dd678faae9ac167bc83abf78e5cb2f3f0688d3a3
