launcherActivity!,
      'iconPath': apkinfo.iconPath!,
    };
    return basicInfo;
  }

  Map<String,String> getMetaData(){
    /*获取metadata数据*/
    return apkinfo.metaData!;
  }

  String getApkPath(){
    return apkinfo.apkPath ?? '';
  }

  String _getPackedInfo(){
    String packed = "未加固或未知加固";
    bool flag = false;
    for(String filePath in fileList){
      String fileName = filePath;
      if(filePath.contains("/")){
        fileName = filePath.split("/").last;
      }
      packedInfo.forEach((key,value){
        if(flag){
          return;
        }
        value.forEach((name,fileList){
          if(flag){
            return;
          }
          if(fileList.contains(filePath)||fileList.contains(fileName)){ //不考虑正则匹配，其余特征已经足够了
            flag = true;
            packed = key;
          }
        });
      });

    }
    return packed;
  }

  String _getBuiltInfo(){
    String built = "原生或未知框架";
    bool flag = false;
    for(String filePath in fileList){
      String fileName = filePath;
      if(filePath.contains("/")){
        fileName = filePath.split("/").last;
      }
      builtInfo.forEach((key,value){
        if(flag){
          return;
        }
        value.forEach((name,fileList){
          if(flag){
            return;
          }
          if(fileList.contains(filePath)||fileList.contains(fileName)){
            flag = true;
            built = key;
          }
        });
      });
    }
    if(apkinfo.launcherActivity == 'org.golang.app.GoNativeActivity'){
      built = "Fyne（所有逻辑都在so当中）";
    }
    return built;
  }

  Map<String,dynamic> getCertInfo() {
    for(String filePath in fileList){
      if(filePath.startsWith("META-INF") && (filePath.endsWith(".RSA") || filePath.endsWith(".DSA"))){
        String certFilePath = extractFileWithZip(apkinfo.apkPath!, filePath, '$tempDirPath/${apkinfo.id}');
        if(checkFileExists(certFilePath)) {
          return readPkcs7Certificate(certFilePath);
        }else{
          myLogger.e("证书文件不存在: $certFilePath");
        }
      }
    }
    return {};
  }

  Map<String, dynamic> readPkcs7Certificate(String filePath) {
    File certFile = File(filePath);
    Map<String, dynamic> certInfo = {};
    var derData = certFile.readAsBytesSync();
    var cert = Pkcs7.fromDer(derData);
    certInfo['版本'] = cert.version;
    certInfo['内容类型'] = cert.contentType.objectIdentifierAsString;
    certInfo['证书列表'] = [];
    certInfo['签名列表'] = [];
    for (var certificate in cert.certificates) {
      Map<String, dynamic> certData = {};
      certData['版本'] = certificate.version.toString();
      certData['序列号'] = certificate.serialNumber.toString();
      certData['主题'] = certificate.subject.toList()


#ifndef _IPXE_REBOOT_H
#define _IPXE_REBOOT_H

/** @file
 *
 * iPXE reboot API
 *
 */

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );

#include <ipxe/api.h>
#include <config/reboot.h>

/**
 * Calculate static inline reboot API function name
 *
 * @v _prefix		Subsystem prefix
 * @v _api_func		API function
 * @ret _subsys_func	Subsystem API function
 */
#define REBOOT_INLINE( _subsys, _api_func ) \
	SINGLE_API_INLINE ( REBOOT_PREFIX_ ## _subsys, _api_func )

/**
 * Provide an reboot API implementation
 *
 * @v _prefix		Subsystem prefix
 * @v _api_func		API function
 * @v _func		Implementing function
 */
#define PROVIDE_REBOOT( _subsys, _api_func, _func ) \
	PROVIDE_SINGLE_API ( REBOOT_PREFIX_ ## _subsys, _api_func, _func )

/**
 * Provide a static inline reboot API implementation
 *
 * @v _prefix		Subsystem prefix
 * @v _api_func		API function
 */
#define PROVIDE_REBOOT_INLINE( _subsys, _api_func ) \
	PROVIDE_SINGLE_API_INLINE ( REBOOT_PREFIX_ ## _subsys, _api_func )

/* Include all architecture-independent reboot API headers */
#include <ipxe/null_reboot.h>
#include <ipxe/efi/efi_reboot.h>

/* Include all architecture-dependent reboot API headers */
#include <bits/reboot.h>

/**
 * Reboot system
 *
 * @v warm		Perform a warm reboot
 */
void reboot ( int warm );

/**
 * Power off system
 *
 * @ret rc		Return status code
 *
 * This function may fail, since not all systems support being powered
 * off by software.
 */
int poweroff ( void );

#endif /* _IPXE_REBOOT_H */


}

// NewStringValue creates a MemoryValue containing a string
func NewStringValue(s string) MemoryValue {
	return MemoryValue{
		valueType: StringType,
		stringVal: s,
	}
}

// NewBlockValue creates a MemoryValue containing a MemoryBlock
func NewBlockValue(block *MemoryBlock) MemoryValue {
	return MemoryValue{
		valueType: BlockType,
		blockVal:  block,
	}
}

// Type returns the type of the value
func (mv MemoryValue) Type() ValueType {
	return mv.valueType
}

// AsString returns the string value if type is StringType, empty string otherwise
func (mv MemoryValue) AsString() string {
	if mv.valueType == StringType {
		return mv.stringVal
	}
	return ""
}

// AsBlock returns the MemoryBlock value if type is BlockType, nil otherwise
func (mv MemoryValue) AsBlock() *MemoryBlock {
	if mv.valueType == BlockType {
		return mv.blockVal
	}
	return nil
}

// IsString returns true if the value is a string
func (mv MemoryValue) IsString() bool {
	return mv.valueType == StringType
}

// IsBlock returns true if the value is a MemoryBlock
func (mv MemoryValue) IsBlock() bool {
	return mv.valueType == BlockType
}

// MemoryBlock represents a key-value store where values can be strings or nested MemoryBlocks
type MemoryBlock struct {
	Items map[string]MemoryValue // For storing multiple key-value pairs
}

// NewMemoryBlock creates a new MemoryBlock with initialized map
func NewMemoryBlock() *MemoryBlock {
	return &MemoryBlock{
		Items: make(map[string]MemoryValue),
	}
}

// AddString adds a string value for the given key
func (mb *MemoryBlock) AddString(key string, value string) {
	mb.Items[key] = NewStringValue(value)
}

// AddBlock adds a MemoryBlock value for the given key
func (mb *MemoryBlock) AddBlock(key string, value *MemoryBlock) {
	mb.Items[key] = NewBlockValue(value)
}

// Delete removes a key-value pair from the MemoryBlock
// Returns true if the key was found and deleted, false otherwise
func (mb *MemoryBlock) Delete(key string) bool {
	if _, exists := mb.Items[key]; exists {
		delete(mb.Items, key)
		return true
	}
	return false
}

// Exists checks if a key exists in the MemoryBlock
func (mb *MemoryBlock) Exists(key string) bool {
	_, exists := mb.Items[key]
	return exists
}

// Parse generates a string representation of the MemoryBlock
// recursively parsing any nested MemoryBlocks into XML-style format
func (mb *MemoryBlock) Parse() string {
	return mb.parseWithIndent(0, "Memory")
}

// parseWithIndent is a helper method for Parse that handles indentation
func (mb *MemoryBlock) parseWithIndent(level int, tagName string) string {
	var result strings.Builder
	indent := strings.Repeat("  ", level)

	// Open tag
	result.WriteString(fmt.Sprintf("%s<%s>\n", indent, tagName))

	// Get all keys and sort them for deterministic output
	keys := make([]string, 0, len(mb.Items))
	for k := range mb.Items {
		keys = append(keys, k)
	}
	sort.Strings(keys)

	// First process all string values in sorted order
	for _, k := range keys {
		v := mb.Items[k]
		if v.IsString() {
			innerIndent := strings.Repeat("  ", level+1)
			result.WriteString(fmt.Sprintf("%s%s:


31,.LPIC0
.LPIC0:	mflr    %r9
	mtlr	%r0
	addis	%r9,%r9,(_C_LABEL(__minbrk)-.LPIC0)@ha
	ldptru	%r5,(_C_LABEL(__minbrk)-.LPIC0)@l(%r9)	# r5 = &_end
#else
	lis	%r9,_C_LABEL(__minbrk)@ha
	ldptru	%r5,_C_LABEL(__minbrk)@l(%r9)	# r5 = &_end
#endif
	cmpptrl	%r5,%r3			# if (__minbrk <= r3)
#ifdef __PPC_ISEL__
	iselgt	%r3,%r5,%r3
#else
	bgt	0f
	mr	%r5,%r3			# r5 = r3
0:
	mr	%r3,%r5			# new break value
#endif
	_DOSYSCALL(break)		# assume that r5 is preserved
	bso	1f
	stptr	%r5,__SIZEOF_POINTER__(%r9)
	blr				# return 0

1:
	BRANCH_TO_CERROR()
END(_brk)


 XtManageChild(data->list[STYLE]);
    XtManageChild(data->list[SIZE]);
    XtManageChild(data->encoding_menu);
    manage_centered(form);

    /* modal event loop */
    while (!data->exit)
	XtAppProcessEvent(XtWidgetToApplicationContext(data->dialog),
							(XtInputMask)XtIMAll);

    if (data->old)
    {
	XFreeFont(XtDisplay(data->dialog),  data->old);
	XmFontListFree(data->old_list);
    }
    XtDestroyWidget(data->dialog);

    gui_motif_synch_fonts();

    return (char_u *) data->font_name;
}


!ifdef CONFIG_SHOW_FEATURES {
	jsr plot_set
	jmp print_features
} else {
	jmp plot_set
}

} else ifdef CONFIG_BANNER_FANCY {

	lda #<rainbow_logo
	ldy #>rainbow_logo
	jsr STROUT

	ldx #$00
	ldy #BANNER_SPACING
	jsr plot_set

	lda #<startup_banner
	ldy #>startup_banner
	jsr STROUT

!ifndef CONFIG_BRAND_CUSTOM {

	ldx #$01
	ldy #BANNER_SPACING
	jsr plot_set

	ldx #IDX__STR_PRE_REV
	jsr print_packed_misc_str

	lda #<rom_revision_basic_string
	ldy #>rom_revision_basic_string
	jsr STROUT

} ; no CONFIG_BRAND_CUSTOM

!ifndef CONFIG_BRAND_CUSTOM {
	ldx #$03
} else {
	ldx #$02
}
	ldy #BANNER_SPACING
	jsr plot_set

	jsr initmsg_bytes_free

!ifndef CONFIG_BRAND_CUSTOM {
	ldx #$06
} else {
	ldx #$05
}
	ldy #$00
!ifdef CONFIG_SHOW_FEATURES {
	jsr plot_set
	jmp print_features
} else {
	jmp plot_set
}

}


| Ethernet12 | CUSTOM_server05_no_profile_Eth2 | trunk | 1-4094 | - | - | - |
| Ethernet13 | CUSTOM_server06_override_profile_Eth2 | access | 210 | - | - | - |
| Ethernet14 | CUSTOM_server07_inherit_all_from_profile_port_channel_Eth2 | *trunk | *1-4094 | *- | *- | 14 |
| Ethernet15 | CUSTOM_server08_no_profile_port_channel_Eth2 | *trunk | *1-4094 | *- | *- | 15 |
| Ethernet16 | CUSTOM_server09_override_profile_no_port_channel_Eth2 | access | 210 | - | - | - |
| Ethernet17 | CUSTOM_server10_no_profile_port_channel_lacp_fallback_Eth2 | *trunk | *1-4094 | *- | *- | 17 |
| Ethernet18 | CUSTOM_server11_inherit_profile_port_channel_lacp_fallback_Eth2 | *trunk | *1-4094 | *- | *- | 18 |
| Ethernet19 | CUSTOM_server12_inherit_nested_profile_port_channel_lacp_fallback_Eth2 | *trunk | *1-4094 | *- | *- | 19 |
| Ethernet20 | CUSTOM_server13_disabled_interfaces_Eth2 | access | 110 | - | - | - |
| Ethernet21 | CUSTOM_server14_explicitly_enabled_interfaces_Eth2 | access | 110 | - | - | - |
| Ethernet22 | CUSTOM_server15_port_channel_disabled_interfaces_Eth2 | *access | *110 | *- | *- | 22 |

*Inherited from Port-Channel Interface

##### IPv4

| Interface | Description | Channel Group | IP Address | VRF |  MTU | Shutdown | ACL In | ACL Out |
| --------- | ----------- | ------------- | ---------- | ----| ---- | -------- | ------ | ------- |
| Ethernet41 | CUSTOM_P2P_LINK_TO_DC1-SPINE1_Ethernet5 | - | 172.31.255.65/31 | default | 1500 | False | - | - |
| Ethernet42 | CUSTOM_P2P_LINK_TO_DC1-SPINE2_Ethernet5 | - | 172.31.255.67/31 | default | 1500 | False | - | - |
| Ethernet43 | CUSTOM_P2P_LINK_TO_DC1-SPINE3_Ethernet5 | - | 172.31.255.69/31 | default | 1500 | False | - | - |
| Ethernet44 | CUSTOM_P2P_LINK_TO_DC1-SPINE4_Ethernet5 | - | 172.31.255.71/31 | default | 1500 | False | - | - |

#### Ethernet Interfaces Device Configuration

```eos
!
interface Ethernet5
   description CUSTOM_MLAG_PEER_DC1-SVC3A_Ethernet5
   no shutdown
   channel-group 5 mode active
!
interface Ethernet6
   description CUSTOM_MLAG_PEER_DC1-SVC3A_Ethernet6
   no shutdown
   channel-group 5 mode active
!
interface Ethernet7
   description CUSTOM_DC1-L2LEAF2A_Ethernet2
   no shutdown
   channel-group 7 mode active
!
interface Ethernet8
   description CUSTOM_DC1-L2LEAF2B_Ethernet2
   no shutdown
   channel-group 7 mode active
!
interface Ethernet10
   description CUSTOM_server03_ES


 [[AA_ADDR]], align 2, !llvm.access.group [[ACC_GRP32]]
// CHECK21-NEXT:    [[ARRAYIDX:%.*]] = getelementptr inbounds [10 x i32], ptr [[TMP0]], i64 0, i64 2
// CHECK21-NEXT:    [[TMP11:%.*]] = load i32, ptr [[ARRAYIDX]], align 4, !llvm.access.group [[ACC_GRP32]]
// CHECK21-NEXT:    [[ADD5:%.*]] = add nsw i32 [[TMP11]], 1
// CHECK21-NEXT:    store i32 [[ADD5]], ptr [[ARRAYIDX]], align 4, !llvm.access.group [[ACC_GRP32]]
// CHECK21-NEXT:    br label [[OMP_BODY_CONTINUE:%.*]]
// CHECK21:       omp.body.continue:
// CHECK21-NEXT:    br label [[OMP_INNER_FOR_INC:%.*]]
// CHECK21:       omp.inner.for.inc:
// CHECK21-NEXT:    [[TMP12:%.*]] = load i64, ptr [[DOTOMP_IV]], align 8, !llvm.access.group [[ACC_GRP32]]
// CHECK21-NEXT:    [[ADD6:%.*]] = add nsw i64 [[TMP12]], 1
// CHECK21-NEXT:    store i64 [[ADD6]], ptr [[DOTOMP_IV]], align 8, !llvm.access.group [[ACC_GRP32]]
// CHECK21-NEXT:    br label [[OMP_INNER_FOR_COND]], !llvm.loop [[LOOP33:![0-9]+]]
// CHECK21:       omp.inner.for.end:
// CHECK21-NEXT:    br label [[OMP_LOOP_EXIT:%.*]]
// CHECK21:       omp.loop.exit:
// CHECK21-NEXT:    call void @__kmpc_for_static_fini(ptr @[[GLOB1]], i32 [[TMP2]])
// CHECK21-NEXT:    [[TMP13:%.*]] = load i32, ptr [[DOTOMP_IS_LAST]], align 4
// CHECK21-NEXT:    [[TMP14:%.*]] = icmp ne i32 [[TMP13]], 0
// CHECK21-NEXT:    br i1 [[TMP14]], label [[DOTOMP_FINAL_THEN:%.*]], label [[DOTOMP_FINAL_DONE:%.*]]
// CHECK21:       .omp.final.then:
// CHECK21-NEXT:    store i64 11, ptr [[I]], align 8
// CHECK21-NEXT:    br label [[DOTOMP_FINAL_DONE]]
// CHECK21:       .omp.final.done:
// CHECK21-NEXT:    ret void
//
//
// CHECK23-LABEL: define {{[^@]+}}@{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z3fooi_l96
// CHECK23-SAME: (ptr noalias noundef [[DYN_PTR:%.*]]) #[[ATTR0:[0-9]+]] {
// CHECK23-NEXT:  entry:
// CHECK23-NEXT:    [[DYN_PTR_ADDR:%.*]] = alloca ptr, align 4
// CHECK23-NEXT:    store ptr [[DYN_PTR]], ptr [[DYN_PTR_ADDR]], align 4
// CHECK23-NEXT:    call void (ptr, i32, ptr, ...) @__kmpc_fork_call(ptr @[[GLOB2:[0-9]+]], i32 0, ptr @{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z3fooi_l96.omp_outlined)
// CHECK23-NEXT:    ret void
//
//
// CHECK23-LABEL: define {{[^@]+}}@{{__omp_offloading_[0-9a-z]+_[0-9a-z]+}}__Z3fooi_l96.omp_outlined
// CHECK23-SAME: (ptr noalias noundef [[DOTGLOBAL_TID_:%.*]], ptr noalias noundef [[DOTBOUND_TID_:%.*]]) #[[ATTR0]] {
// CHECK23-NEXT:  entry:
//


 vdb get() = _vdb!!

    //////////////////////////////////////////////////////////////////////////////

    //@warn 如果子类可以继承, 这里子类的VB一定要放置在第一个
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
        inflateView(container)
        _vdb = com.mozhimen.uik.databinding.utils.ViewDataBindingUtil.get_ofClass<VDB>(this::class.java, inflater, container/*, 0*/).apply {
            lifecycleOwner = viewLifecycleOwner
        }
        return vdb.root
    }

    /**
     * 及时释放vb避免内存泄漏
     */
    @CallSuper
    override fun onDestroyView() {
        vdb.unbind()
        _vdb = null
        super.onDestroyView()
    }

    @CallSuper
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        try {
            initLayout()
            initData(savedInstanceState)
        } catch (e: Exception) {
            e.printStackTrace()
        }
    }

    override fun inflateView(viewGroup: ViewGroup?) {
        UtilKLogWrapper.d(TAG, "onCreateView: ")
    }

    override fun initLayout() {

    }

    @CallSuper
    override fun initData(savedInstanceState: Bundle?) {
        initView(savedInstanceState)
        initObserver()
        initEvent()
    }
}package com.mozhimen.xmlk.bases

import android.content.Context
import android.util.AttributeSet
import android.view.View
import androidx.annotation.RequiresApi
import com.mozhimen.kotlin.elemk.android.os.cons.CVersCode
import com.mozhimen.xmlk.commons.IViewK

/**
 * @ClassName ICustomView
 * @Description TODO
 * @Author Kolin Zhao / Mozhimen
 * @Date 2021/12/7 18:01
 * @Version 1.0
 */
abstract class BaseViewK : View, IViewK {

    @JvmOverloads
    constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : super(context, attrs, defStyleAttr)

    @RequiresApi(CVersCode.V_21_5_L)
    constructor(context: Context, attrs: AttributeSet?, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)

    ////////////////////////////////////////////////////////////

    protected var widthF = 0f
    protected var heightF = 0f
    protected var centerX = 0f
    protected var centerY = 0f
    protected var sideLength = 0f//最短边长
    protected var realRadius = 0f//真实半径

    override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
        widthF = w.toFloat() - paddingStart - paddingEnd
        heightF = h.toFloat() - paddingTop - paddingBottom
        centerX = widthF / 2f
        centerY = heightF / 2f
        sideLength = widthF.coerceAtMost(heightF)
        realRadius = sideLength / 2f
        super.onSizeChanged(w, h, oldw, oldh)
    }
}/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

package mozilla.appservices.syncmanager

import mozilla.appservices.sync15.EngineInfo
import mozilla.appservices.sync15.FailureReason
import java.util.Date

/**
 * Holds fields common to all Glean sync engine pings.
 */
internal data class BaseGleanSyncPing(
    val uid: String,
    val startedAt: Date,
    val finishedAt: Date,
    val applied: Int,
    val failedToApply: Int,
    val reconciled: Int,
    val uploaded: Int,
    val failedToUpload: Int,
    val outgoin


    for (int i = 2; i <= n + 1; ++i) g[a[i]].push_back(i);

      // 分块
      build(n + 2);

      int ans = n + 2, lst, ok;
      for (int i = 1; i <= n + 1; ++i) {
        g[i].push_back(n + 2);

        lst = 1;
        ok = 0;
        for (int pos : g[i]) {
          if (query(lst + 1, pos - 1, lst) == i - 1) {
            ok = 1;
            break;
          }
          lst = pos;
        }

        if (!ok) {
          ans = i;
          break;
        }

        lst = 1;
        g[i].pop_back();
        for (int pos : g[i]) {
          update(pos, lst);
          lst = pos;
        }
      }
      printf("%d\n", ans);
      return 0;
    }
    ```

??? note "参考代码（线段树套 Treap-468ms）"
    ```cpp
    #include <cstdio>
    #include <random>
    #include <vector>
    using namespace std;
    constexpr int N = 1e5 + 5;

    vector<int> g[N];
    int n, a[N];

    mt19937 rng(random_device{}());

    struct Treap {
      struct node {
        node *l, *r;
        unsigned rnd;
        int sz, v;

        node(int _v) : l(NULL), r(NULL), rnd(rng()), sz(1), v(_v) {}
      };

      int get_size(node*& p) { return p ? p->sz : 0; }

      void push_up(node*& p) {
        if (!p) return;
        p->sz = get_size(p->l) + get_size(p->r) + 1;
      }

      node* root;

      node* merge(node* a, node* b) {
        if (!a) return b;
        if (!b) return a;
        if (a->rnd < b->rnd) {
          a->r = merge(a->r, b);
          push_up(a);
          return a;
        } else {
          b->l = merge(a, b->l);
          push_up(b);
          return b;
        }
      }

      void split_val(node* p, const int& k, node*& a, node*& b) {
        if (!p)
          a = b = NULL;
        else {
          if (p->v <= k) {
            a = p;
            split_val(p->r, k, a->r, b);
            push_up(a);
          } else {
            b = p;
            split_val(p->l, k, a, b->l);
            push_up(b);
          }
        }
      }

      void split_size(node* p, int k, node*& a, node*& b) {
        if (!p)
          a = b = NULL;
        else {
          if (get_size(p->l)


le-toggler.ui-icon-triangle-1-s:before{content:""}body .ui-treetable .ui-treetable-data>tr>td .ui-chkbox.ui-selection{vertical-align:middle;margin-right:1rem}body .ui-treetable .ui-treetable-data>tr>td .ui-chkbox.ui-selection .ui-icon-minus{font-family:"primeicons" !important;font-style:normal;font-weight:normal;display:inline-block;background:none;color:#212529}body .ui-treetable .ui-treetable-data>tr>td .ui-chkbox.ui-selection .ui-icon-minus:before{content:""}body .ui-treetable .ui-treetable-data>tr.ui-state-hover{background:#e9ecef;color:#212529}body .ui-treetable .ui-treetable-data>tr.ui-state-highlight{background:#007bff;color:#fff;cursor:default}body .ui-treetable .ui-treetable-data>tr.ui-state-highlight .ui-treetable-toggler{color:#fff}body .ui-treetable .ui-treetable-data>tr.ui-state-highlight .ui-treetable-toggler:hover{color:#fff}body .ui-treetable .ui-treetable-data>tr .ui-row-editor .ui-icon{width:2rem;height:2rem;background:rgba(0,0,0,0);color:#6c757d;transition:background-color .15s,color .15s,border-color .15s,box-shadow .15s,opacity .15s;border-radius:50%;border:0 none;text-align:center;line-height:2rem;padding:0;user-select:none}body .ui-treetable .ui-treetable-data>tr .ui-row-editor .ui-icon:hover{background:rgba(0,0,0,0);color:#495057;border-color:rgba(0,0,0,0)}body .ui-treetable .ui-treetable-data>tr .ui-row-editor .ui-icon:focus{outline:0 none;outline-offset:0;box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}body .ui-treetable .ui-treetable-data>tr .ui-row-editor .ui-icon.ui-icon-pencil{font-family:"primeicons" !important;font-style:normal;font-weight:normal;display:inline-block;background:none}body .ui-treetable .ui-treetable-data>tr .ui-row-editor .ui-icon.ui-icon-pencil:before{content:""}body .ui-treetable .ui-treetable-data>tr .ui-row-editor .ui-icon.ui-icon-check{font-family:"primeicons" !important;font-style:normal;font-weight:normal;display:inline-block;background:none;margin-right:.5rem}body .ui-treetable .ui-treetable-data>tr .ui-row-editor .ui-icon.ui-icon-check:before{content:""}body .ui-treetable .ui-treetable-data>tr .ui-row-editor .ui-icon.ui-icon-close{font-family:"primeicons" !important;font-style:normal;font-weight:normal;display:inline-block;background:none}body .ui-treetable .ui-treetable-data>tr .ui-row-editor .ui-icon.ui-icon-close:before{content:""}body .ui-treetable .ui-treetable-data>tr .ui-row-editor .ui-row-editor-check{display:none}body .ui-treetable .ui-treetable-data>tr .ui-row-editor .ui-row-editor-close{display:none}body .ui-


: %w", err)
	}

	// validate filterMode
	switch opts.FilterMode {
	case api.HostFilterModeAllowed:
	case api.HostFilterModeBlocked:
	case api.HostFilterModeAll:
	default:
		return nil, fmt.Errorf("invalid filter mode: %v", opts.FilterMode)
	}

	var whereExprs []string
	var args []any

	// filter allowlist/blocklist
	switch opts.FilterMode {
	case api.HostFilterModeAllowed:
		if hasAllowlist {
			whereExprs = append(whereExprs, "EXISTS (SELECT 1 FROM host_allowlist_entry_hosts hbeh WHERE hbeh.db_host_id = h.id)")
		}
		if hasBlocklist {
			whereExprs = append(whereExprs, "NOT EXISTS (SELECT 1 FROM host_blocklist_entry_hosts hbeh WHERE hbeh.db_host_id = h.id)")
		}
	case api.HostFilterModeBlocked:
		if hasAllowlist {
			whereExprs = append(whereExprs, "NOT EXISTS (SELECT 1 FROM host_allowlist_entry_hosts hbeh WHERE hbeh.db_host_id = h.id)")
		}
		if hasBlocklist {
			whereExprs = append(whereExprs, "EXISTS (SELECT 1 FROM host_blocklist_entry_hosts hbeh WHERE hbeh.db_host_id = h.id)")
		}
		if !hasAllowlist && !hasBlocklist {
			// if neither an allowlist nor a blocklist exist, all hosts are
			// allowed which means we return none
			return []api.Host{}, nil
		}
	}

	// filter address
	if opts.AddressContains != "" {
		whereExprs = append(whereExprs, "(SELECT EXISTS (SELECT 1 FROM host_addresses ha WHERE ha.db_host_id = h.id AND ha.net_address LIKE ?))")
		args = append(args, "%"+opts.AddressContains+"%")
	}

	// filter public key
	if len(opts.KeyIn) > 0 {
		pubKeys := make([]any, len(opts.KeyIn))
		for i, pk := range opts.KeyIn {
			pubKeys[i] = PublicKey(pk)
		}
		placeholders := strings.Repeat("?, ", len(opts.KeyIn)-1) + "?"
		whereExprs = append(whereExprs, fmt.Sprintf("h.public_key IN (%s)", placeholders))
		args = append(args, pubKeys...)
	}

	// filter usability
	if opts.UsabilityMode != api.UsabilityFilterModeAll {
		switch opts.UsabilityMode {
		case api.UsabilityFilterModeUsable:
			whereExprs = append(whereExprs, "EXISTS (SELECT 1 FROM hosts h2 INNER JOIN host_checks hc ON hc.db_host_id = h2.id AND h2.id = h.id WHERE (hc.usability_blocked = 0 AND hc.usability_offline = 0 AND hc.usability_low_score = 0 AND hc.usability_redundant_ip = 0 AND hc.usability_gouging = 0 AND hc.usability_low_max_duration = 0 AND hc.usability_not_accepting_contracts = 0 AND hc.usability_not_announced = 0 AND hc.usability_not_completing_scan = 0))")
		case api.UsabilityFilterModeUnusable:
			whereExprs = append(whereExprs, "EXISTS (SELECT 1 FROM hosts h2 INNER JOIN host_checks hc ON hc.db_host_id = h2.id AND h2.id = h.id WHERE (hc.usability_blocked = 1 OR hc.usability_offline = 1 OR hc.usability_low_score = 1 OR hc.usability_redundant_ip = 1 OR hc.usability_gouging = 1 OR hc.usability_low_max_duration = 1 OR hc.usability_not_accepting_contracts = 1 OR hc.usability_not_announced = 1 OR hc.usability_not_completing_scan = 1))")
		}
	}


teTime, false)
            } else if (obj.state == Zombie.STATE_DEAD) {
                animDie!!.getKeyFrame(obj.stateTime, false)
            } else if (obj.state == Zombie.STATE_HURT) {
                zombieHurt
            } else null

            if (obj.isFacingLeft) {
                spriteFrame!!.setPosition(obj.position.x + .29f, obj.position.y - .34f + ajusteY)
                spriteFrame.setSize(-.8f, .8f)
                spriteFrame.draw(batcher)
            } else {
                spriteFrame!!.setPosition(obj.position.x - .29f, obj.position.y - .34f + ajusteY)
                spriteFrame.setSize(.8f, .8f)
                spriteFrame.draw(batcher)
            }

            // // Barra de vidas
            if (obj.vidas > 0 && (obj.state == Zombie.STATE_NORMAL || obj.state == Zombie.STATE_HURT)) batcher.draw(
                Assets.redBar,
                obj.position.x - .33f,
                obj.position.y + .36f,
                .65f * (obj.vidas.toFloat() / obj.MAX_LIFE),
                .075f
            )
        }
    }

    private fun drawSpikes() {
        val keyframe: TextureRegion? = Assets.spike

        for (obj in oWorld.arrSpikes) {
            batcher.draw(keyframe, obj!!.position.x - obj.DRAW_WIDTH / 2f, obj.position.y - obj.DRAW_HEIGHT / 2f, obj.DRAW_WIDTH, obj.DRAW_HEIGHT)
        }
    }

    private fun drawBullets() {
        for (obj in oWorld.arrBullets) {
            var animBullet: AnimationSprite? = null

            when (obj!!.tipo) {
                Bullet.LEVEL_0 -> animBullet = Assets.bullet1
                Bullet.LEVEL_1 -> animBullet = Assets.bullet2
                Bullet.LEVEL_2 -> animBullet = Assets.bullet3
                Bullet.LEVEL_3 -> animBullet = Assets.bullet4
                Bullet.LEVEL_4_AND_UP -> animBullet = Assets.bullet5
            }

            if (obj.state == Bullet.STATE_DESTROY) continue

            // BALA
            run {
                val spriteFrame = animBullet!!.getKeyFrame(obj.stateTime, false)
                if (obj.isFacingLeft) {
                    spriteFrame!!.setPosition(obj.position.x + .1f, obj.position.y - .1f)
                    spriteFrame.setSize(-.2f, .2f)
                    spriteFrame.draw(batcher)
                } else {
                    spriteFrame!!.setPosition(obj.position.x - .1f, obj.position.y - .1f)
                    spriteFrame.setSize(.2f, .2f)
                    spriteFrame.draw(batcher)
                }
            }

            // MUZZLE FIRE
            if (obj.state == Bullet.STATE_MUZZLE) {
                val spriteFrame = Assets.muzzle!!.getKeyFrame(obj.stateTime, false)
                if (obj.isFacingLeft) {
                    spriteFrame!!.setPosition(oWorld.oHero!!.position.x + .1f - .42f, oWorld.oHero!!.position.y - .1f - .14f)
                    spriteFrame.setSize(-.2f, .2f)
                } else {
                    spriteFrame!!.setPosition(oWorld.oHero!!.position.x - .1f + .42f, oWorld.oHero!!.position.y - .1f - .14f)
                    spriteFrame.setSize(.2f, .2f)
                }
                spriteFrame.draw(batcher)
            }

            // MUZZLE HIT
            if (obj.state == Bullet.STATE_HIT) {
                val spriteFrame = Assets.muzzle!!.getKeyFrame(obj.stateTime, false


.word	0x0020
		.word	0x07a0
		.word	0x0020
		.word	0x0600
		.word	0x0040
		.word	0x07c0
		.word	0x0020
		.word	0x07e0
		.word	0x0040
		.word	0x07a0
		.word	0x0040
		.word	0x07a0
		.word	0x07a0
		.word	0x0400
		.word	0x07c0
		.word	0x0040
		.word	0x07c0
		.word	0x0000
		.word	0x07a0
		.word	0x0000
		.word	0x0600
		.word	0x07e0
		.word	0x0400
		.word	0x0040
		.word	0x0400
		.word	0x07a0
		.word	0x07a0
		.word	0x0600
		.word	0x0020
		.word	0x0040

.end

define(ISETS_TEXT_ADDR,   `0x'dnl'
mpeval(MAIN_BASE_TEXT_VA + 0x20000, 16)dnl
)
define(ISETS_TEXT_ADDR_RA, `0x'dnl'
mpeval(MAIN_BASE_TEXT_RA + 0x20000, 16)dnl
)
define(ISETS_TEXT_ADDR_PA, ra2pa(ISETS_TEXT_ADDR_RA,0))

changequote([, ])dnl
SECTION .ISETS TEXT_VA= [0x]mpeval(ISETS_TEXT_ADDR,16)
attr_text {
	Name = .ISETS,
	VA= [0x]mpeval(ISETS_TEXT_ADDR, 16),
	PA= [0x]mpeval(ISETS_TEXT_ADDR_PA, 16),
	RA= [0x]mpeval(ISETS_TEXT_ADDR_RA, 16),
	part_0_i_ctx_nonzero_ps0_tsb,

#ifdef CSM_ENABLE
	part_0_i_ctx_nonzero_ps0_tsb_csm,
    TTE_HDID=0, TTE_HD_SIZE=mpeval(PITON_NUM_TILES%64), TTE_SDID=0, TTE_LSID=0,
#endif

	TTE_G=1, TTE_Context=0x44, TTE_V=1, TTE_Size=0, TTE_NFO=0,
	TTE_IE=0, TTE_Soft2=0, TTE_Diag=0, TTE_Soft=0,
	TTE_L=0, TTE_CP=1, TTE_CV=0, TTE_E=0, TTE_P=0, TTE_W=0
	}
changequote(`,')dnl'

.text
.global isets

isets:

set0:
		subcc	%i7,	1,		%i7
		be		test
		add		%i1,	4,		%i1
		ld		[%i1],			%i2
		add		%i0,	%i2,	%i3
		jmp		%i3
		nop

.align 32

set1:
		subcc	%i7,	1,		%i7
		be		test
		add		%i1,	4,		%i1
		ld		[%i1],			%i2
		add		%i0,	%i2,	%i3
		jmp		%i3
		nop

.align 32

set2:
		subcc	%i7,	1,		%i7
		be		test
		add		%i1,	4,		%i1
		ld		[%i1],			%i2
		add		%i0,	%i2,	%i3
		jmp		%i3
		nop

.align 1024

set32:
		subcc	%i7,	1,		%i7
		be		test
		add		%i1,	4,		%i1
		ld		[%i1],			%i2
		add		%i0,	%i2,	%i3
		jmp		%i3
		nop

.align 512

set48:
		subcc	%i7,	1,		%i7
		be		test
		add		%i1,	4,		%i1
		ld		[%i1],			%i2
		add		%i0,	%i2,	%i3
		jmp		%i3
		nop

.align 256

set56:	ba		test
		nop

.align 128

set60:	ba		test
		nop

.align 32

set61:
		subcc	%i7,	1,		%i7
		be		test
		add		%i1,	4,		%i1
		ld


) neinstalată. Doriţi să o descărcaţi acum?","manyChanges":"Verificarea textului terminată: 1% cuvinte modificate","noChanges":"Verificarea textului terminată: Niciun cuvânt modificat","noMispell":"Verificarea textului terminată: Nicio greşeală găsită","noSuggestions":"- Fără sugestii -","notAvailable":"Scuzați, dar serviciul nu este disponibil momentan.","notInDic":"Nu e în dicţionar","oneChange":"Verificarea textului terminată: Un cuvânt modificat","progress":"Verificarea textului în desfăşurare...","title":"Spell Checker","toolbar":"Verifică scrierea textului"}};/*
Copyright (c) 2003-2019, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.md or https://ckeditor.com/license
*/
CKEDITOR.lang['lt']={"editor":"Pilnas redaktorius","editorPanel":"Pilno redagtoriaus skydelis","common":{"editorHelp":"Spauskite ALT 0 dėl pagalbos","browseServer":"Naršyti po serverį","url":"URL","protocol":"Protokolas","upload":"Siųsti","uploadSubmit":"Siųsti į serverį","image":"Vaizdas","flash":"Flash","form":"Forma","checkbox":"Žymimasis langelis","radio":"Žymimoji akutė","textField":"Teksto laukas","textarea":"Teksto sritis","hiddenField":"Nerodomas laukas","button":"Mygtukas","select":"Atrankos laukas","imageButton":"Vaizdinis mygtukas","notSet":"<nėra nustatyta>","id":"Id","name":"Vardas","langDir":"Teksto kryptis","langDirLtr":"Iš kairės į dešinę (LTR)","langDirRtl":"Iš dešinės į kairę (RTL)","langCode":"Kalbos kodas","longDescr":"Ilgas aprašymas URL","cssClass":"Stilių lentelės klasės","advisoryTitle":"Konsultacinė antraštė","cssStyle":"Stilius","ok":"OK","cancel":"Nutraukti","close":"Uždaryti","preview":"Peržiūrėti","resize":"Pavilkite, kad pakeistumėte dydį","generalTab":"Bendros savybės","advancedTab":"Papildomas","validateNumberFailed":"Ši reikšmė nėra skaičius.","confirmNewPage":"Visas neišsaugotas turinys bus prarastas. Ar tikrai norite įkrauti naują puslapį?","confirmCancel":"Kai kurie parametrai pasikeitė. Ar tikrai norite užverti langą?","options":"Parametrai","target":"Tikslinė nuoroda","targetNew":"Naujas langas (_blank)","targetTop":"Viršutinis langas (_top)","targetSelf":"Esamas langas (_self)","targetParent":"Paskutinis langas (_parent)","langDirLTR":"Iš kairės į dešinę (LTR)","langDirRTL":"Iš dešinės į kairę (RTL)","styles":"Stilius","cssClasses":"Stilių klasės","width":"Plotis","height":"Aukštis","align":"Lygiuoti","left":"Kairę","right":"Dešinę","center":"Centrą","justify":"Lygiuoti abi puses","alignLeft":"Lygiuoti kairę","alignRight":"Lygiuoti dešinę","alignCenter":"Align Center","alignTop":"Viršūnę","alignMiddle":"Vidurį","alignBottom":"Apačią","alignNone":"Niekas","invalidValue":"Neteisinga reikšmė.","invalidHeight":"Aukštis turi būti nurod


log("Freigabe für: " + dispatchedJob11.dueDate)
}
let completedJob12 = new AssemblyJob("0", product1, {}, 0, false)
let dispatchedJob12 = dispatcher.handleJobCompletion(completedJob12, manager.waitingJobs)
if (dispatchedJob12 != null){
    console.log("Freigabe für: " + dispatchedJob12.dueDate)
}
let completedJob13 = new AssemblyJob("0", product1, {}, 0, false)
let dispatchedJob13 = dispatcher.handleJobCompletion(completedJob13, manager.waitingJobs)
if (dispatchedJob13 != null){
    console.log("Freigabe für: " + dispatchedJob13.dueDate)
}
if (dispatchedJob13 === null){
    console.log("Kein Auftrag wurde freigegeben.")
}
import type { ObjectHydrator } from '@mikro-orm/core';
import { Embeddable, Embedded, Entity, Enum, MikroORM, OptionalProps, PrimaryKey, Property, wrap } from '@mikro-orm/core';
import { TsMorphMetadataProvider } from '@mikro-orm/reflection';
import { mockLogger } from '../../helpers';
import { SqliteDriver } from '@mikro-orm/sqlite';

enum AnimalType {
  CAT,
  DOG,
}

@Embeddable({ abstract: true, discriminatorColumn: 'type' })
abstract class Animal {

  @Enum()
  type!: AnimalType;

  @Property()
  name!: string;

}

@Embeddable({ discriminatorValue: AnimalType.CAT })
class Cat extends Animal {

  @Property()
  canMeow? = true;

  constructor(name: string) {
    super();
    this.type = AnimalType.CAT;
    this.name = name;
  }

}

@Embeddable({ discriminatorValue: AnimalType.DOG })
class Dog extends Animal {

  @Property()
  canBark? = true;

  constructor(name: string) {
    super();
    this.type = AnimalType.DOG;
    this.name = name;
  }

}

@Entity()
class Owner {

  [OptionalProps]?: 'pets';

  @PrimaryKey()
  id!: number;

  @Property()
  name: string;

  @Embedded()
  pet!: Cat | Dog;

  @Embedded({ object: true })
  pet2!: Cat | Dog;

  @Embedded()
  pets: (Cat | Dog)[] = [];

  constructor(name: string) {
    this.name = name;
  }

}

describe('polymorphic embeddables in sqlite', () => {

  let orm: MikroORM;

  beforeAll(async () => {
    orm = await MikroORM.init({
      entities: [Dog, Cat, Owner],
      dbName: ':memory:',
      driver: SqliteDriver,
      metadataProvider: TsMorphMetadataProvider,
    });
    await orm.schema.createSchema();
  });

  afterAll(async () => {
    await orm.close();
  });

  beforeEach(async () => {
    await orm.em.nativeDelete(Owner, {});
    orm.em.clear();
  });

  test(`schema`, async () => {
    await expect(orm.schema.getCreateSchemaSQL({ wrap: false })).resolves.toMatchSnapshot();
    await expect(orm.schema.getUpdateSchemaSQL({ wrap: false })).resolves.toMatchSnapshot();
    await expect(orm.schema.getDropSchemaSQL({ wrap: false })).resolves.toMatchSnapshot();
  });

  test(`diffing`, async () => {
    const hydrator = orm.config.getHydrator(orm.getMetad


1, r2, dec, r)
				}
			}
		}
		if j != len(tt.out) {
			t.Errorf("#%d: EncodeRune didn't generate enough output", i)
		}
	}
}

type decodeTest struct {
	in  []uint16
	out []rune
}

var decodeTests = []decodeTest{
	{[]uint16{1, 2, 3, 4}, []rune{1, 2, 3, 4}},
	{[]uint16{0xffff, 0xd800, 0xdc00, 0xd800, 0xdc01, 0xd808, 0xdf45, 0xdbff, 0xdfff},
		[]rune{0xffff, 0x10000, 0x10001, 0x12345, 0x10ffff}},
	{[]uint16{0xd800, 'a'}, []rune{0xfffd, 'a'}},
	{[]uint16{0xdfff}, []rune{0xfffd}},
}

func TestDecode(t *testing.T) {
	for _, tt := range decodeTests {
		out := Decode(tt.in)
		if !reflect.DeepEqual(out, tt.out) {
			t.Errorf("Decode(%x) = %x; want %x", tt.in, out, tt.out)
		}
	}
}

var decodeRuneTests = []struct {
	r1, r2 rune
	want   rune
}{
	{0xd800, 0xdc00, 0x10000},
	{0xd800, 0xdc01, 0x10001},
	{0xd808, 0xdf45, 0x12345},
	{0xdbff, 0xdfff, 0x10ffff},
	{0xd800, 'a', 0xfffd}, // illegal, replacement rune substituted
}

func TestDecodeRune(t *testing.T) {
	for i, tt := range decodeRuneTests {
		got := DecodeRune(tt.r1, tt.r2)
		if got != tt.want {
			t.Errorf("%d: DecodeRune(%q, %q) = %v; want %v", i, tt.r1, tt.r2, got, tt.want)
		}
	}
}

var surrogateTests = []struct {
	r    rune
	want bool
}{
	// from http://en.wikipedia.org/wiki/UTF-16
	{'\u007A', false},     // LATIN SMALL LETTER Z
	{'\u6C34', false},     // CJK UNIFIED IDEOGRAPH-6C34 (water)
	{'\uFEFF', false},     // Byte Order Mark
	{'\U00010000', false}, // LINEAR B SYLLABLE B008 A (first non-BMP code point)
	{'\U0001D11E', false}, // MUSICAL SYMBOL G CLEF
	{'\U0010FFFD', false}, // PRIVATE USE CHARACTER-10FFFD (last Unicode code point)

	{rune(0xd7ff), false}, // surr1-1
	{rune(0xd800), true},  // surr1
	{rune(0xdc00), true},  // surr2
	{rune(0xe000), false}, // surr3
	{rune(0xdfff), true},  // surr3-1
}

func TestIsSurrogate(t *testing.T) {
	for i, tt := range surrogateTests {
		got := IsSurrogate(tt.r)
		if got != tt.want {
			t.Errorf("%d: IsSurrogate(%q) = %v; want %v", i, tt.r, got, tt.want)
		}
	}
}

func BenchmarkDecodeValidASCII(b *testing.B) {
	// "hello world"
	data := []uint16{104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100}
	for i := 0; i < b.N; i++ {
		Decode(data)
	}
}

func BenchmarkDecodeValidJapaneseChars(b *testing.B) {
	// "日本語日本語日本語"


ubwSWat19e[KѸPkYw+,\v\F+h<Icɹq`$AIu; GpiiGEuS}eXS?Q	XIHjVgr%dȈ
fufv8Of4G?C=wHyQ9lWxȡϜ<^a^Ra_MmJS%h&L

4^ѹuFc;(w5Zx0o&Rp85i U`ea*p8vf/-bXCgQ9@LNZ+י葝(ʔ3?ܸ>j"]@^$;W>^QafF66`DĩsK1zJPcq]oc%K5./1gʹ,f39W(3PLF(=Y
zzQx1xd+~P	^oKkh rQsE$#u٭ҿ[%I6B|aDJKddiՠ1GMAI8Xٶě6'k:D4iEAȮvYnYjqgPT6[\N^<i)<iTѕCќF@xH%%~Qo.@Ԡ
]4	9ԨKp%?)53ÝSP%@U(GoNI5{LW5Iy~Ģ7yfZ qCr|Oic?.oJޙm!3'W.+VcI3q}@O֡!9hpv%&7g:;m QHJaqZEuf?Lv
ȝ━Y15'xQW^rMLgt4!H~MaQX.Q;_/DB"Sw(`1kcvn!3|d5q|7ŕjX#xm0ZQu5/]l˃Whjȅ[Y]lWOJA{k4m,=๐%ytn)^05>W3+DCb>!?RJ]rH]Cnƫ4OjmL۹W{|G|q:b:njyTcSOs4=8>"<GGE<ԥc֚_9GpĘ,)	gB*KS"&tF,(*UuB<aiM)\2deQ)WulӶnrob~>xqiD/yBiEIqpT_})ٔJ~,XWn-wi?mk/j*xg4ˊÑ3orocPl*$pV"=<t誢Mf
HU=m#j&]6$>fC$2gPKy_W*j%sb|_)dlb%Y,ھHٕ++E!|{rF/|;	eWx^_'j9I0>WVw>wxG[olRڕMhͻ`ۧh0_i6-rK+i;>:5lN4f"ZJ)J	[x<}kPKT]*,b_Ч>P^U4{Kiw4lqƐo
-*ލ3$&i,S
ެs~ggr$0CbTpjߧc
d,
>jg#_fVviE8h$ޔ{srz)}[Zǩr첫


        let (send_sub1, recv_sub1) = new_channel_subscription(41, "topic1".to_owned(), None, 10);
        conn.subscribe(send_sub1).unwrap();
        conn.unsubscribe(&recv_sub1, Some(7)).unwrap();
        conn.subscriptions.get_mut(&41).unwrap().delivered = 2;
        conn.writer.clear();
        conn.resend_subscriptions().unwrap();
        let first = "SUB topic1  41\r\n";
        let second = "UNSUB 41 5\r\n";
        let expected = format!("{}{}", first, second);
        assert_eq!(expected, str::from_utf8(&conn.writer).unwrap());
    }

    #[test]
    fn test_ping() {
        let mut conn = default_core_conn();
        conn.ping().unwrap();
        assert_eq!("PING\r\n", str::from_utf8(&conn.writer).unwrap());
    }

    #[test]
    fn test_pong() {
        let mut conn = default_core_conn();
        conn.pong().unwrap();
        assert_eq!("PONG\r\n", str::from_utf8(&conn.writer).unwrap());
    }

    #[test]
    fn test_connect() {
        let mut conn = default_core_conn();
        conn.send_connect().unwrap();
        let s = str::from_utf8(&conn.writer).unwrap();
        assert_eq!("CONNECT ", &s[..8]);
        let conn_info: NatsConnInfo = serde_json::from_str(&s[8..]).unwrap();
        assert!(!conn_info.verbose);
        assert!(!conn_info.pedantic);
        assert!(conn_info.user.is_none());
        assert!(conn_info.pass.is_none());
        assert!(conn_info.auth_token.is_none());
        assert!(!conn_info.ssl_required);
    }

    #[test]
    fn test_connect_user_pass() {
        let mut conn = default_core_conn();
        let u = Url::parse("nats://brian:my_pass@localhost:4222").unwrap();
        conn.servers.clear();
        conn.servers.push(u);
        conn.send_connect().unwrap();
        let s = str::from_utf8(&conn.writer).unwrap();
        assert_eq!("CONNECT ", &s[..8]);
        let conn_info: NatsConnInfo = serde_json::from_str(&s[8..]).unwrap();
        assert_eq!(Some("brian".to_owned()), conn_info.user);
        assert_eq!(Some("my_pass".to_owned()), conn_info.pass);
        assert!(conn_info.auth_token.is_none());
    }

    #[test]
    fn test_connect_auth_token() {
        let mut conn = default_core_conn();
        let u = Url::parse("nats://secret_token@localhost:4222").unwrap();
        conn.servers.clear();
        conn.servers.push(u);
        conn.send_connect().unwrap();
        let s = str::from_utf8(&conn.writer).unwrap();
        assert_eq!("CONNECT ", &s[..8]);
        let conn_info: NatsConnInfo = serde_json::from_str(&s[8..]).unwrap();
        assert!(conn_info.user.is_none());
        assert!(conn_info.pass.is_none());
        assert_eq!(Some("secret_token".to_owned()), conn_info.auth_token);
    }

    #[test]
    fn test_various_options() {
        let mut conn = default_core_conn();
        conn.config.verbose = true;
        conn.config.pedantic = true


lNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE_EONSt16remove_referenceIT_E4typeEOS9_
	nop
	leave
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10280:
	.size	_ZN6ranges10indirectedIZ4mainEUlNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE_EC2ES7_, .-_ZN6ranges10indirectedIZ4mainEUlNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE_EC2ES7_
	.set	_ZN6ranges10indirectedIZ4mainEUlNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE_EC1ES7_,_ZN6ranges10indirectedIZ4mainEUlNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE_EC2ES7_
	.type	_ZSt4moveIRN6ranges10indirectedIZ4mainEUlNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE_EEEONSt16remove_referenceIT_E4typeEOSC_, @function
_ZSt4moveIRN6ranges10indirectedIZ4mainEUlNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE_EEEONSt16remove_referenceIT_E4typeEOSC_:
.LFB10282:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	movq	%rdi, -8(%rbp)
	movq	-8(%rbp), %rax
	popq	%rbp
	.cfi_def_cfa 7, 8
	ret
	.cfi_endproc
.LFE10282:
	.size	_ZSt4moveIRN6ranges10indirectedIZ4mainEUlNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE_EEEONSt16remove_referenceIT_E4typeEOSC_, .-_ZSt4moveIRN6ranges10indirectedIZ4mainEUlNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE_EEEONSt16remove_referenceIT_E4typeEOSC_
	.align 2
	.type	_ZN6ranges12view_adaptorINS_19iter_transform_viewINS_8ref_viewISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EEEENS_10indirectedIZ4mainEUlS9_E_EEEESC_LNS_11cardinalityEn1EEC2EOSC_, @function
_ZN6ranges12view_adaptorINS_19iter_transform_viewINS_8ref_viewISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS9_EEEENS_10indirectedIZ4mainEUlS9_E_EEEESC_LNS_11cardinalityEn1EEC2EOSC_:
.LFB10284:
	.cfi_startproc
	pushq	%rbp
	.cfi_def_cfa_offset 16
	.cfi_offset 6, -16
	movq	%rsp, %rbp
	.cfi_def_cfa_register 6
	pushq	%rbx
	subq	$24, %rsp
	.cfi_offset 3, -24
	movq	%rdi, -24(%rbp


norms[i] = feature_map_2[1][i]:norm()
    end
    local sorted, idx = norms:sort()
    print(111)
    --]]

--  p = model:get(1):get(1)
  -- print(p)
   local err, outputs = optimator:optimize(
       optim.sgd,
       inputs,
       labels,
       criterion)
   cutorch.synchronize()
   batchNumber = batchNumber + 1
   loss_epoch = loss_epoch + err
   -- top-1 error
   local top1 = 0
   do
      local _,prediction_sorted = outputs:float():sort(2, true) -- descending
      for i=1,opt.batchS


;

// 	public provideCodeActions(document: vscode.TextDocument, range: vscode.Range): vscode.CodeAction[] | undefined {
// 		if (!this.isAtStartOfSmiley(document, range)) {
// 			return;
// 		}

// 		const replaceWithSmileyCatFix = this.createFix(document, range, '😺');

// 		const replaceWithSmileyFix = this.createFix(document, range, '😀');
// 		// Marking a single fix as `preferred` means that users can apply it with a
// 		// single keyboard shortcut using the `Auto Fix` command.
// 		replaceWithSmileyFix.isPreferred = true;

// 		const replaceWithSmileyHankyFix = this.createFix(document, range, '💩');

// 		const commandAction = this.createCommand();

// 		return [
// 			replaceWithSmileyCatFix,
// 			replaceWithSmileyFix,
// 			replaceWithSmileyHankyFix,
// 			commandAction
// 		];
// 	}

// 	private isAtStartOfSmiley(document: vscode.TextDocument, range: vscode.Range) {
// 		const start = range.start;
// 		const line = document.lineAt(start.line);
// 		return line.text[start.character] === ':' && line.text[start.character + 1] === ')';
// 	}

// 	private createFix(document: vscode.TextDocument, range: vscode.Range, emoji: string): vscode.CodeAction {
// 		const fix = new vscode.CodeAction(`Convert to ${emoji}`, vscode.CodeActionKind.QuickFix);
// 		fix.edit = new vscode.WorkspaceEdit();
// 		fix.edit.replace(document.uri, new vscode.Range(range.start, range.start.translate(0, 2)), emoji);
// 		return fix;
// 	}

// 	private createCommand(): vscode.CodeAction {
// 		const action = new vscode.CodeAction('Learn more...', vscode.CodeActionKind.Empty);
// 		action.command = { command: COMMAND, title: 'Learn more about emojis', tooltip: 'This will open the unicode emoji page.' };
// 		return action;
// 	}
// }

/**
 * Provides code actions corresponding to diagnostic problems.
 */
// export class Emojinfo implements vscode.CodeActionProvider {

// 	public static readonly providedCodeActionKinds = [
// 		vscode.CodeActionKind.QuickFix
// 	];

// 	provideCodeActions(document: vscode.TextDocument, range: vscode.Range | vscode.Selection, context: vscode.CodeActionContext, token: vscode.CancellationToken): vscode.CodeAction[] {
// 		// for each diagnostic entry that has the matching `code`, create a code action command
// 		return context.diagnostics
// 			.filter(diagnostic => diagnostic.code === EMOJI_MENTION)
// 			.map(diagnostic => this.createCommandCodeAction(diagnostic));
// 	}

// 	private createCommandCodeAction(diagnostic: vscode.Diagnostic): vscode.CodeAction {
// 		const action = new vscode.CodeAction('Learn more...', vscode.CodeActionKind.QuickFix);
// 		action.command = { command: COMMAND, title: 'Learn more about emojis', tooltip: 'This will open the unicode emoji page.' };
// 		action.diagnostics = [diagnostic];
// 		action.isPreferred = true;
// 		return action;
// 	}
// }

// this method is called when your extension is deactivated
export function deactivate() { }
/**
 * @license
 * Copyright 2022 Dynatrace LLC
 * Licensed


/*
 * Copyright (C) 2011 STRATO AG
 * written by Arne Jansen <sensille@gmx.net>
 * Distributed under the GNU GPL license version 2.
 *
 */

#ifndef __ULIST__
#define __ULIST__

/*
 * ulist is a generic data structure to hold a collection of unique u64
 * values. The only operations it supports is adding to the list and
 * enumerating it.
 * It is possible to store an auxiliary value along with the key.
 *
 * The implementation is preliminary and can probably be sped up
 * significantly. A first step would be to store the values in an rbtree
 * as soon as ULIST_SIZE is exceeded.
 */

/*
 * number of elements statically allocated inside struct ulist
 */
#define ULIST_SIZE 16

/*
 * element of the list
 */
struct ulist_node {
	u64 val;		/* value to store */
	unsigned long aux;	/* auxiliary value saved along with the val */
};

struct ulist {
	/*
	 * number of elements stored in list
	 */
	unsigned long nnodes;

	/*
	 * number of nodes we already have room for
	 */
	unsigned long nodes_alloced;

	/*
	 * pointer to the array storing the elements. The first ULIST_SIZE
	 * elements are stored inline. In this case the it points to int_nodes.
	 * After exceeding ULIST_SIZE, dynamic memory is allocated.
	 */
	struct ulist_node *nodes;

	/*
	 * inline storage space for the first ULIST_SIZE entries
	 */
	struct ulist_node int_nodes[ULIST_SIZE];
};

void ulist_init(struct ulist *ulist);
void ulist_fini(struct ulist *ulist);
void ulist_reinit(struct ulist *ulist);
struct ulist *ulist_alloc(unsigned long gfp_mask);
void ulist_free(struct ulist *ulist);
int ulist_add(struct ulist *ulist, u64 val, unsigned long aux,
	      unsigned long gfp_mask);
struct ulist_node *ulist_next(struct ulist *ulist, struct ulist_node *prev);

#endif


沂蒙山小调'},
{'68120',	'沂矇山小調',	'沂矇山小調'},
{'68121',	'李嘉诚',	'李嘉诚'},
{'68122',	'李嘉誠',	'李嘉誠'},
{'68123',	'李黄瓜',	'李黄瓜'},
{'68124',	'李黃瓜',	'李黃瓜'},
{'68125',	'十四世',	'十四世'},
{'68126',	'港d',	'港d'},
{'68127',	'huanyuan',	'huanyuan'},
{'68128',	'hy游戏',	'hy游戏'},
{'68129',	'還原',	'還原'},
{'68130',	'hy遊戲',	'hy遊戲'},
{'68131',	'台湾恐怖游戏',	'台湾恐怖游戏'},
{'68132',	'檯灣恐怖遊戲',	'檯灣恐怖遊戲'},
{'68133',	'(?i)(返校|还愿|Devotion).0,8(登录|上架|gog|游戏|下架)|(上架|gog|游戏|登录|下架).0,8(还愿|返校|Devotion)',	'(?i)(返校|还愿|Devotion).0,8(登录|上架|gog|游戏|下架)|(上架|gog|游戏|登录|下架).0,8(还愿|返校|Devotion)'},
{'68134',	'虔诚',	'虔诚'},
{'68135',	'虔誠',	'虔誠'},
{'68136',	'x家河',	'x家河'},
{'68137',	'x傢河',	'x傢河'},
{'68138',	'狼家河',	'狼家河'},
{'68139',	'狼傢河',	'狼傢河'},
{'68140',	'(?i)(夿|岜|巴|扒|把|拔|朳|柭|湃|炦|犮|玐|癹|秡|粑|罷|耙|芭|菝|蚆|詙|跁|軷|鈀|鈸|钯|霸|颰|魃|鲃|⑧|ba|8⃣|x1F557|Ⅷ|ⅷ|⑻|⒏|㈧|eight|b8)(丩|乆|乣|僦|匓|匶|咎|奺|就|廏|慦|揂|揫|救|朻|柩|桕|欍|氿|湫|牞|畂|稵|糺|紤|纠|臼


from django.contrib import admin
from .models import *

admin.site.register(CustomUser)
admin.site.register(CommunityPost)
admin.site.register(Community)
admin.site.register(PostCommand)


ector UI，为安全审计和监控提供了新的途径。 虽然这次更新本身没有直接的安全漏洞，但扩展了功能，增加了安全相关的可能性。
</details>

---

### Exe-To-Base64-ShellCode-Convert - Exe转Shellcode工具，含规避技术

#### 📌 仓库信息

| 属性 | 详情 |
|------|------|
| 仓库名称 | [Exe-To-Base64-ShellCode-Convert](https://github.com/Reazmx/Exe-To-Base64-ShellCode-Convert) |
| 风险等级 | `HIGH` |
| 安全类型 | `漏洞利用/安全研究` |
| 更新类型 | `SECURITY_IMPROVEMENT` |

#### 📊 代码统计

- 分析提交数: **5**

#### 💡 分析概述

该仓库提供将可执行文件转换为Base64编码的Shellcode的功能，并结合了UAC绕过和反病毒规避技术，旨在部署FUD（Fully Undetectable）payload。此次更新内容可能涉及到shellcode加载器的优化、规避技术的改进或payload的更新。根据描述，该仓库的目标是绕过安全检测，因此潜在的利用方式是生成恶意shellcode并进行隐蔽的部署。具体更新内容需结合代码分析。考虑到该仓库涉及恶意代码生成和免杀技术，风险等级较高。

#### 🔍 关键发现

| 序号 | 发现内容 |
|------|----------|
| 1 | 将EXE转换为Shellcode的功能 |
| 2 | 包含UAC绕过和反病毒规避技术 |
| 3 | 旨在部署FUD payloads |
| 4 | 可能涉及shellcode加载器和payload更新 |

#### 🛠 技术细节

> 使用了Exe-To-Base64-ShellCode-Convert技术, 这是一种将可执行文件转换为Base64编码的shellcode的方法。

> 可能包含UAC绕过技术, 用于提升权限。

> 可能包含反病毒规避技术, 例如代码混淆、加密等。

> 可能包含shellcode加载器, 用于将shellcode加载到内存中执行。

#### 🎯 受影响组件

```
• Windows操作系统
• 安全软件
• 用户程序
```

#### ⚡ 价值评估

<details>
<summary>展开查看详细评估</summary>

该仓库提供了用于绕过安全检测的技术，能够生成恶意shellcode并进行隐蔽的部署。 这些技术对安全研究具有一定参考价值。 因为涉及绕过安全防护的技术，所以具有一定的价值。
</details>

---

### ShellCode-Elevator-Uac-Bypass-Inject-Any-X64-fud - Shellcode UAC Bypass 工具

#### 📌 仓库信息

| 属性 | 详情 |
|------|------|
| 仓库名称 | [ShellCode-Elevator-Uac-Bypass-Inject-Any-X


.chat_colors.id"
    private const val KEY_CHAT_COLORS_AUTO_TOOLTIP = "chat_colors.auto.tooltip"
    private const val KEY_CHAT_COLORS_GRADIENT_TOOLTIP = "chat_colors.gradient.tooltip"
  }

  override fun onFirstEverAppLaunch() = Unit

  override fun getKeysToIncludeInBackup(): MutableList<String> = mutableListOf(
    KEY_CHAT_COLORS,
    KEY_CHAT_COLORS_ID,
    KEY_CHAT_COLORS_AUTO_TOOLTIP,
    KEY_CHAT_COLORS_GRADIENT_TOOLTIP
  )

  var shouldShowAutoTooltip: Boolean
    get() = getBoolean(KEY_CHAT_COLORS_AUTO_TOOLTIP, true)
    set(value) = putBoolean(KEY_CHAT_COLORS_AUTO_TOOLTIP, value)

  var shouldShowGradientTooltip: Boolean
    get() = getBoolean(KEY_CHAT_COLORS_GRADIENT_TOOLTIP, true)
    set(value) = putBoolean(KEY_CHAT_COLORS_GRADIENT_TOOLTIP, value)

  val hasChatColors: Boolean
    @JvmName("hasChatColors")
    get() = chatColors != null

  var chatColors: ChatColors?
    get() = getBlob(KEY_CHAT_COLORS, null)?.let { bytes ->
      try {
        ChatColors.forChatColor(chatColorsId, ChatColor.ADAPTER.decode(bytes))
      } catch (e: IOException) {
        null
      }
    }
    set(value) {
      if (value != null) {
        putBlob(KEY_CHAT_COLORS, value.serialize().encode())
        chatColorsId = value.id
      } else {
        remove(KEY_CHAT_COLORS)
      }
    }

  private var chatColorsId: ChatColors.Id
    get() = ChatColors.Id.forLongValue(getLong(KEY_CHAT_COLORS_ID, ChatColors.Id.NotSet.longValue))
    set(value) = putLong(KEY_CHAT_COLORS_ID, value.longValue)
}
/*
 * Copyright 2023 Signal Messenger, LLC
 * SPDX-License-Identifier: AGPL-3.0-only
 */

package org.tm.archive.keyvalue

import org.signal.core.util.logging.Log

internal class ApkUpdateValues(store: KeyValueStore) : SignalStoreValues(store) {
  companion object {
    private val TAG = Log.tag(ApkUpdateValues::class.java)

    private const val DOWNLOAD_ID = "apk_update.download_id"
    private const val DIGEST = "apk_update.digest"
    private const val AUTO_UPDATE = "apk_update.auto_update"
    private const val LAST_SUCCESSFUL_CHECK = "apk_update.last_successful_check"
    private const val LAST_APK_UPLOAD_TIME = "apk_update.last_apk_upload_time"
    private const val PENDING_APK_UPLOAD_TIME = "apk_update.pending_apk_upload_time"
  }

  override fun onFirstEverAppLaunch() = Unit
  override fun getKeysToIncludeInBackup(): List<String> = emptyList()

  val downloadId: Long by longValue(DOWNLOAD_ID, -2)
  val digest: ByteArray? get() = store.getBlob(DIGEST, null)
  var autoUpdate: Boolean by booleanValue(AUTO_UPDATE, true)
  var lastSuccessfulCheck: Long by longValue(LAST_SUCCESSFUL_CHECK, 0)

  /** The upload of the last APK we installed */
  var lastApkUploadTime: Long
    get() = getLong(LAST_APK_UPLOAD_TIME, 0)
    set(value) {
      Log.d(TAG, "Setting lastApkUploadTime to $value")
      store.beginWrite().putLong(LAST_APK_UPLOAD_TIME, value).commit()
    }

  /** The upload time of the APK we're trying to install */
  val pendingApkUploadTime: Long by longValue(PENDING_APK_UPLOAD_TIME,


rb r0, [r7, #0x06]	@ BL

	ldrb r1, [r4], #1

	eor r3, r1, r0
	tst r9, #0x2		@ check CF
	addne r1, r1, #1
	mov r0, r0, lsl#24
	adds r0, r0, r1, lsl#24
	mrs r2, cpsr		@ NZCV
	orr r9, r0, r2, lsr#28
	tst r1, #0x100
	orrne r9, r9, #0x2
	eor r3, r3, r0, lsr#24	@ AF
	and r3, r3, #0x10
	orr r9, r9, r3

	mov r1, r0, lsr #24
	strb r1, [r7, #0x06]	@ BL

	ldrb r3, [r4], #1
	subs r5, r5, #4
	ldrge pc, [r6, r3, asl#2]
	b ArmNecEnd

OP80d4:
	ldrb r0, [r7, #0x01]	@ AH

	ldrb r1, [r4], #1

	eor r3, r1, r0
	tst r9, #0x2		@ check CF
	addne r1, r1, #1
	mov r0, r0, lsl#24
	adds r0, r0, r1, lsl#24
	mrs r2, cpsr		@ NZCV
	orr r9, r0, r2, lsr#28
	tst r1, #0x100
	orrne r9, r9, #0x2
	eor r3, r3, r0, lsr#24	@ AF
	and r3, r3, #0x10
	orr r9, r9, r3

	mov r1, r0, lsr #24
	strb r1, [r7, #0x01]	@ AH

	ldrb r3, [r4], #1
	subs r5, r5, #4
	ldrge pc, [r6, r3, asl#2]
	b ArmNecEnd

OP80d5:
	ldrb r0, [r7, #0x03]	@ CH

	ldrb r1, [r4], #1

	eor r3, r1, r0
	tst r9, #0x2		@ check CF
	addne r1, r1, #1
	mov r0, r0, lsl#24
	adds r0, r0, r1, lsl#24
	mrs r2, cpsr		@ NZCV
	orr r9, r0, r2, lsr#28
	tst r1, #0x100
	orrne r9, r9, #0x2
	eor r3, r3, r0, lsr#24	@ AF
	and r3, r3, #0x10
	orr r9, r9, r3

	mov r1, r0, lsr #24
	strb r1, [r7, #0x03]	@ CH

	ldrb r3, [r4], #1
	subs r5, r5, #4
	ldrge pc, [r6, r3, asl#2]
	b ArmNecEnd

OP80d6:
	ldrb r0, [r7, #0x05]	@ DH

	ldrb r1, [r4], #1

	eor r3, r1, r0
	tst r9, #0x2		@ check CF
	addne r1, r1, #1
	mov r0, r0, lsl#24
	adds r0, r0, r1, lsl#24
	mrs r2, cpsr		@ NZCV
	orr r9, r0, r2, lsr#28


Year: false,
		yearSuffix: ''};
	$.datepicker.setDefaults($.datepicker.regional['uk']);
});
/* Bulgarian initialisation for the jQuery UI date picker plugin. */
/* Written by Stoyan Kyosev (http://svest.org). */
jQuery(function($){
	$.datepicker.regional['bg'] = {
		closeText: 'затвори',
		prevText: '<назад',
		nextText: 'напред>',
		nextBigText: '>>',
		currentText: 'днес',
		monthNames: ['Януари','Февруари','Март','Април','Май','Юни',
		'Юли','Август','Септември','Октомври','Ноември','Декември'],
		monthNamesShort: ['Яну','Фев','Мар','Апр','Май','Юни',
		'Юли','Авг','Сеп','Окт','Нов','Дек'],
		dayNames: ['Неделя','Понеделник','Вторник','Сряда','Четвъртък','Петък','Събота'],
		dayNamesShort: ['Нед','Пон','Вто','Сря','Чет','Пет','Съб'],
		dayNamesMin: ['Не','По','Вт','Ср','Че','Пе','Съ'],
		weekHeader: 'Wk',
		dateFormat: 'dd.mm.yy',
		firstDay: 1,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};
	$.datepicker.setDefaults($.datepicker.regional['bg']);
});
/*! jQuery UI - v1.10.3 - 2013-05-03
* http://jqueryui.com
* Includes: jquery.ui.datepicker-af.js, jquery.ui.datepicker-ar-DZ.js, jquery.ui.datepicker-ar.js, jquery.ui.datepicker-az.js, jquery.ui.datepicker-be.js, jquery.ui.datepicker-bg.js, jquery.ui.datepicker-bs.js, jquery.ui.datepicker-ca.js, jquery.ui.datepicker-cs.js, jquery.ui.datepicker-cy-GB.js, jquery.ui.datepicker-da.js, jquery.ui.datepicker-de.js, jquery.ui.datepicker-el.js, jquery.ui.datepicker-en-AU.js, jquery.ui.datepicker-en-GB.js, jquery.ui.datepicker-en-NZ.js, jquery.ui.datepicker-eo.js, jquery.ui.datepicker-es.js, jquery.ui.datepicker-et.js, jquery.ui.datepicker-eu.js, jquery.ui.datepicker-fa.js, jquery.ui.datepicker-fi.js, jquery.ui.datepicker-fo.js, jquery.ui.datepicker-fr-CA.js, jquery.ui.datepicker-fr-CH.js, jquery.ui.datepicker-fr.js, jquery.ui.datepicker-gl.js, jquery.ui.datepicker-he.js, jquery.ui.datepicker-hi.js, jquery.ui.datepicker-hr.js, jquery.ui.datepicker-hu.js, jquery.ui.datepicker-hy.js, jquery.ui.datepicker-id.js, jquery.ui.datepicker-is.js, jquery.ui.datepicker-it.js, jquery.ui.datepicker-ja.js, jquery.ui.datepicker-ka.js, jquery.ui.datepicker-kk.js, jquery.ui.datepicker-km.js, jquery.ui.datepicker-ko.js, jquery.ui.datepicker-ky.js, jquery.ui.datepicker-lb.js, jquery.ui.datepicker-lt.js, jquery.ui.datepicker-lv.js, jquery.ui.datepicker-mk.js, jquery.ui.datepicker-ml.js, jquery.ui.datepicker-ms.js, jquery.ui.datepicker-nb.js,


// -*- C++ -*-
//===----------------------------------------------------------------------===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

#ifndef _LIBCPP___ITERATOR_INSERT_ITERATOR_H
#define _LIBCPP___ITERATOR_INSERT_ITERATOR_H

#include <__config>
#include <__iterator/iterator.h>
#include <__iterator/iterator_traits.h>
#include <__memory/addressof.h>
#include <__ranges/access.h>
#include <__utility/move.h>
#include <cstddef>

#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#  pragma GCC system_header
#endif

_LIBCPP_PUSH_MACROS
#include <__undef_macros>

_LIBCPP_BEGIN_NAMESPACE_STD

#if _LIBCPP_STD_VER >= 20
template <class _Container>
using __insert_iterator_iter_t = ranges::iterator_t<_Container>;
#else
template <class _Container>
using __insert_iterator_iter_t = typename _Container::iterator;
#endif

_LIBCPP_SUPPRESS_DEPRECATED_PUSH
template <class _Container>
class _LIBCPP_TEMPLATE_VIS insert_iterator
#if _LIBCPP_STD_VER <= 14 || !defined(_LIBCPP_ABI_NO_ITERATOR_BASES)
    : public iterator<output_iterator_tag, void, void, void, void>
#endif
{
  _LIBCPP_SUPPRESS_DEPRECATED_POP

protected:
  _Container* container;
  __insert_iterator_iter_t<_Container> iter;

public:
  typedef output_iterator_tag iterator_category;
  typedef void value_type;
#if _LIBCPP_STD_VER >= 20
  typedef ptrdiff_t difference_type;
#else
  typedef void difference_type;
#endif
  typedef void pointer;
  typedef void reference;
  typedef _Container container_type;

  _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20
  insert_iterator(_Container& __x, __insert_iterator_iter_t<_Container> __i)
      : container(std::addressof(__x)), iter(__i) {}
  _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 insert_iterator&
  operator=(const typename _Container::value_type& __value) {
    iter = container->insert(iter, __value);
    ++iter;
    return *this;
  }
#ifndef _LIBCPP_CXX03_LANG
  _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 insert_iterator&
  operator=(typename _Container::value_type&& __value) {
    iter = container->insert(iter, std::move(__value));
    ++iter;
    return *this;
  }
#endif // _LIBCPP_CXX03_LANG
  _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 insert_iterator& operator*() { return *this; }
  _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 insert_iterator& operator++() { return *this; }
  _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 insert_iterator& operator++(int) { return *this; }
};

template <class _Container>
inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX20 insert_iterator<_Container>
inserter(_Container& __x, __insert_iterator_iter_t<_Container> __i) {
  return insert_iterator<_Container>(__x, __i);
}

_LIBCPP_END_NAMESPACE_STD

_LIBCPP_POP_MACROS

#endif // _LIBCPP___ITERATOR_INSERT_ITERATOR_H


this.drawingContext.scale(this._pInst.pixelDensity,
      this._pInst.pixelDensity);
    this.drawingContext.drawImage(imgOrCol.canvas, x, y);
    this.loadPixels.call(this._pInst);
    this.drawingContext.restore();
  } else {
    var ctx = this._pInst || this;
    var r = 0, g = 0, b = 0, a = 0;
    var idx = 4*((y * ctx.pixelDensity) *
      (this.width * ctx.pixelDensity) + (x * ctx.pixelDensity));
    if (!ctx.imageData) {
      ctx.loadPixels.call(ctx);
    }
    if (typeof imgOrCol === 'number') {
      if (idx < ctx.pixels.length) {
        r = imgOrCol;
        g = imgOrCol;
        b = imgOrCol;
        a = 255;
        //this.updatePixels.call(this);
      }
    }
    else if (imgOrCol instanceof Array) {
      if (imgOrCol.length < 4) {
        throw new Error('pixel array must be of the form [R, G, B, A]');
      }
      if (idx < ctx.pixels.length) {
        r = imgOrCol[0];
        g = imgOrCol[1];
        b = imgOrCol[2];
        a = imgOrCol[3];
        //this.updatePixels.call(this);
      }
    } else if (imgOrCol instanceof p5.Color) {
      if (idx < ctx.pixels.length) {
        r = imgOrCol.rgba[0];
        g = imgOrCol.rgba[1];
        b = imgOrCol.rgba[2];
        a = imgOrCol.rgba[3];
        //this.updatePixels.call(this);
      }
    }
    // loop over pixelDensity * pixelDensity
    for (var i = 0; i < ctx.pixelDensity; i++) {
      for (var j = 0; j < ctx.pixelDensity; j++) {
        // loop over
        idx = 4*((y * ctx.pixelDensity + j) * this.width *
          ctx.pixelDensity + (x * ctx.pixelDensity + i));
        ctx.pixels[idx] = r;
        ctx.pixels[idx+1] = g;
        ctx.pixels[idx+2] = b;
        ctx.pixels[idx+3] = a;
      }
    }
  }
};

p5.Renderer2D.prototype.updatePixels = function (x, y, w, h) {
  var pd = this.pixelDensity || this._pInst.pixelDensity;
  if (x === undefined &&
      y === undefined &&
      w === undefined &&
      h === undefined) {
    x = 0;
    y = 0;
    w = this.width;
    h = this.height;
  }
  w *= pd;
  h *= pd;

  if (this._pInst) {
    this.drawingContext.putImageData(this._pInst.imageData, x, y, 0, 0, w, h);
  } else {
    this.drawingContext.putImageData(this.imageData, x, y, 0, 0, w, h);
  }
};

//////////////////////////////////////////////
// SHAPE | 2D Primitives
//////////////////////////////////////////////

/**
 * Generate a cubic Bezier representing an arc on the unit circle of total
 * angle `size` radians, beginning `start` radians above the x-axis. Up to
 * four of these curves are combined to make a full arc.
 *
 * See www.joecridge.me/bezier.pdf for an explanation of the method.
 */
p5.Renderer2D.prototype._acuteArcToBezier =
  function _acuteArcToBezier(start, size) {
  // Evauate constants.
  var alpha =


     {
                CombatItemData _Troop = (CombatItemData)CSVManager.DataTables.GetDataById(UnitType); ;
                DataSlot _DataSlot = _PlayerUnits.Find(t => t.Data.GetGlobalID() == _Troop.GetGlobalID());
                if (_DataSlot != null)
                {
                    _DataSlot.Value = _DataSlot.Value - Count;
                }
            }
            else if (UnitType.ToString().StartsWith("260"))
            {
                SpellData _Spell = (SpellData)CSVManager.DataTables.GetDataById(UnitType); ;
                DataSlot _DataSlot = _PlayerSpells.Find(t => t.Data.GetGlobalID() == _Spell.GetGlobalID());
                if (_DataSlot != null)
                {
                    _DataSlot.Value = _DataSlot.Value - Count;
                }
            }
        }

        public int BuildingId;
        public int Count;
        public int UnitType;
    }
}


eLiveIntentSignedInUser(false);
Mntl.RTB.setUseGDPREnforcement(false);
Mntl.RTB.setUseXandrS2S(false);
Mntl.RTB.setUseCommerceAndShoppingAPSTag(false);
Mntl.RTB.setRemoveAdTiers(true);
Mntl.RTB.setUserIdAuctionDelay(500);
Mntl.RTB.setTaxonomyStampValues({"tax1":"alr_Recipes","tax2":"alr_Desserts","tax0":"alr_homepage","tax3":"alr_Cookies","tax4":"alr_ChocolateChipCookies"});
Mntl.RTB.setTimeoutLength(1250);
Mntl.RTB.Plugins.amazon.amazonConfigs = {"mapTaxValues":{"tax1":"alr_Recipes","tax2":"alr_Desserts","si_section":"alr_Desserts","tax0":"alr_homepage","tax3":"alr_Cookies"},"amazonSlotName":false,"mapFBValues":{"adunitid":"mapFBID"},"amazonSection":"Cookies"};
Mntl.RTB.Plugins.prebid.setPriceGranularity({"buckets":[{"max":"20","increment":"0.05"},{"max":"70","increment":"1"}]});
Mntl.RTB.initVideoBidders([{ type: 'amazon', id: '3446' }, { type: 'prebid', id: 'true' } ]);
Mntl.RTB.initDisplayAndOutstreamBidders([{ type: "amazon", id: '3446'},{ type: "msg", id: 'true'},{ type: "ixid", id: null},{ type: "prebid", id: 'true'},{ type: "liveConnect", id: 'a-01b5'}]);
Mntl.RTB.Plugins.prebid.setConfig({"square-fixed\/tier1":[{"bidder":"ttd","params":{"supplySourceId":"dotdash","publisherId":"1","type":"display"}},{"bidder":"rubicon","params":{"accountId":"7499","siteId":"426712","zoneId":"2440842","type":"display"}},{"bidder":"pubmatic","params":{"publisherId":"158139","adSlot":"3478952","type":"display"}},{"bidder":"ix","params":{"siteId":"1005790","type":"display"}},{"bidder":"appnexus","params":{"placementId":"21060088","type":"display"}},{"bidder":"trustx","params":{"uid":"21640","useNewFormat":true,"type":"display"}},{"bidder":"criteo","params":{"networkId":7764,"type":"display"}},{"bidder":"roundel","params":{"siteId":382319,"type":"display"}}],"leaderboard-fixed\/tier2":[{"bidder":"ttd","params":{"supplySourceId":"dotdash","publisherId":"1","type":"display"}},{"bidder":"appnexus","params":{"placementId":"21060080","type":"display"}},{"bidder":"rubicon","params":{"accountId":"7499","siteId":"426712","zoneId":"2440834","type":"display"}},{"bidder":"pubmatic","params":{"publisherId":"158139","adSlot":"3478944","type":"display"}},{"bidder":"roundel","params":{"siteId":382319,"type":"display"}},{"bidder":"criteo","params":{"networkId":7764,"type":"display"}},{"bidder":"ix","params":{"siteId":"1005786","type":"display"}},{"bidder":"trustx","params":{"uid":"21632","useNewFormat":true


      elseif level < 20 then
         rank_text = "action.move.global.ambush.rank.grizzly_bear"
      elseif level < 30 then
         rank_text = "action.move.global.ambush.rank.drake"
      elseif level < 40 then
         rank_text = "action.move.global.ambush.rank.lich"
      else
         rank_text = "action.move.global.ambush.rank.dragon"
      end

      Gui.mes(I18N.get("action.move.global.ambush.message", town_dist, rank_text))
      Input.query_more()
      -- <<<<<<<< shade2/action.hsp:711 			txt lang("襲撃だ！","Ambush!")+valn:msg_halt ..
   end,

   on_map_entered = function(map, level, outer_map, outer_x, outer_y)
      local player = Chara.player()

      -- >>>>>>>> shade2/map.hsp:1640 			p=rnd(9):if cLevel(pc)<=5:p=rnd(3) ...
      local enemy_count = Rand.rnd(9)
      if player:calc("level") <= 5 then
         enemy_count = Rand.rnd(3)
      end

      local tile = outer_map:tile(outer_x, outer_y)

      for i = 1, enemy_count + 2 do
         local filter = {
            level = Calc.calc_object_level(level, map),
            quality  = Calc.calc_object_quality(Enum.Quality.Normal)
         }

         if Weather.is("elona.etherwind") and not tile.is_road then
            if Rand.one_in(3) then
               filter.quality = Enum.Quality.God
            end
         end

         local x, y
         if i < 4 then
            x, y = player.x, player.y
         else
            x, y = nil, nil
         end

         local chara = Charagen.create(x, y, filter, map)
         if chara then
            chara:set_target(player, 30)
         end
      end
      -- <<<<<<<< shade2/map.hsp:1647 			loop ..
   end
}


|
| -------------- | ------------------------------------------------------------ |
| ✅ **单调读**   | read2从**S**3读取数据，该数据反映read1之后的状态（即，较早的状态反映在read1读取的数据中）。 |
| ✅ **单调写**   | write2更新了**P**new的数据，这等效于write1之后回退写1的数据。 |
| ✅ **写跟随读** | write2更新**P**new数据，以反映read1之后的状态（即，较早的状态反映read1读取的数据）。 |

##### 方案4（“关注多数”和“关注关注” ）`{w: 1}`

考虑一个替代序列，其中具有读关注的读1[`"majority"`](https://docs.mongodb.com/manual/reference/read-concern-majority/#readconcern."majority")路由到`S`1：

| 序列                                                         | 例                                                           |
| :----------------------------------------------------------- | :----------------------------------------------------------- |
| 1.write1与写入关注 到 [`{ w: 1 }`](https://docs.mongodb.com/manual/reference/write-concern/#writeconcern.)**P**old
2.read11与读关心[`"majority"`](https://docs.mongodb.com/manual/reference/read-concern-majority/#readconcern."majority")到**S**1
3.write2到新的关注[`{ w: 1 }`](https://docs.mongodb.com/manual/reference/write-concern/#writeconcern.)**P**new
4.read2与读取关注[`"majority"`](https://docs.mongodb.com/manual/reference/read-concern-majority/#readconcern."majority")到**S**3 | 对于项目`A`，更新`qty`为`50`。
阅读项目`A`。对于`qty`小于或等于的项目`50`，
更新`restock`到`true`。阅读项目`A`。 |

按此顺序：

* 直到**S**1上的大多数提交点提高，read1才能返回。在**P**old和**S**1能够与复制集的其他成员进行通信之前，这是不可能发生的。此时，**P**old已经退出(如果还没有)，write1将从**P**old和**S**1回滚，两个成员将与复制集的其他成员同步。

➤ *如果因果一致性意味着持久性*

| ❌ **自己写**   | read1读取的数据不反映已回退的write1</su


dynamic>).map((e) => e as String).toList(),
      addtime: json['addtime'] as String,
      seriesId: json['series_id'] as String,
      isFavorite: json['is_favorite'] as bool,
      liked: json['liked'] as bool,
    );

Map<String, dynamic> _$JmEpInfoJsonToJson(_JmEpInfoJson instance) =>
    <String, dynamic>{
      'id': instance.id,
      'series': instance.series,
      'tags': instance.tags,
      'name': instance.name,
      'images': instance.images,
      'addtime': instance.addtime,
      'series_id': instance.seriesId,
      'is_favorite': instance.isFavorite,
      'liked': instance.liked,
    };

_Series _$SeriesFromJson(Map<String, dynamic> json) => _Series(
  id: json['id'] as String,
  name: json['name'] as String,
  sort: json['sort'] as String,
);

Map<String, dynamic> _$SeriesToJson(_Series instance) => <String, dynamic>{
  'id': instance.id,
  'name': instance.name,
  'sort': instance.sort,
};
import 'dart:convert';

import 'package:auto_route/annotations.dart';
import 'package:flutter/material.dart' hide Page;
import 'package:flutter_foreground_task/flutter_foreground_task.dart';
import 'package:zephyr/main.dart';
import 'package:zephyr/object_box/objectbox.g.dart';
import 'package:zephyr/page/download/widgets/eps.dart';
import 'package:zephyr/type/pipe.dart';
import 'package:zephyr/util/context/context_extensions.dart';
import 'package:zephyr/util/foreground_task/data/download_task_json.dart';
import 'package:zephyr/util/foreground_task/init.dart';
import 'package:zephyr/util/foreground_task/main_task.dart';
import 'package:zephyr/widgets/toast.dart';

import '../../../object_box/model.dart';
import '../../comic_info/json/bika/comic_info/comic_info.dart';
import '../../comic_info/json/bika/eps/eps.dart';
import '../../comments/widgets/title.dart';

@RoutePage()
class DownloadPage extends StatefulWidget {
  final Comic comicInfo;
  final List<Doc> epsInfo;

  const DownloadPage({
    super.key,
    required this.comicInfo,
    required this.epsInfo,
  });

  @override
  State<DownloadPage> createState() => _DownloadPageState();
}

class _DownloadPageState extends State<DownloadPage> {
  Comic get comicInfo => widget.comicInfo;

  List<Doc> get epsInfo => widget.epsInfo;

  late Map<int, bool> _downloadInfo;
  late BikaComicDownload? bikaComicDownloadInfo;

  void onUpdateDownloadInfo(int order) {
    setState(() {
      _downloadInfo[order] = !_downloadInfo[order]!;
    });
  }

  @override
  void initState() {
    super.initState();
    _downloadInfo = {};
    for (var ep in epsInfo) {
      _downloadInfo[ep.order] = false;
    }
    final query = objectbox.bikaDownloadBox.query(
      BikaComicDownload_.comicId.equals(comicInfo.id),
    );
    bikaComicDownloadInfo = query.build().findFirst();
    if (bikaComicDownloadInfo != null) {
      for (var epTitle in bikaComicDownloadInfo!.epsTitle) {
        for (var ep in epsInfo) {
          if (ep.title == epTitle)


       dir = util_utf8_to_gb2312(dir)
            res_export_was_image(row.buff_anim, dir)
        end
    end
end

function init()
    content_system_init()
    -- export_map()
    -- export_music()
    -- export_npc_avatar()
    -- export_avatar_summon()
    -- export_npc_avatar()
    export_skill()

end

function update()

end

do
    iw_init(800, 600)
    iw_set_font(vfs_get_workdir() .. '/assets/font/simsun.ttc',14)
    local ok, ret = pcall(init)
    if not ok then
        print(ret)
    end
    iw_render(update)
    iw_deinit()
end


ndex > 5 {
                return Err(ScanError::Error("VarInt is to big".to_owned()));
            }

            if (read & 0b10000000) == 0 {
                break;
            }
        }

        Ok(VarInt(result))
    }

    async fn encode<W>(&self, buf: &mut W) -> Result<(), ScanError> where W: Write + Unpin + Send {
        let mut val = self.0 as u32;

        loop {
            let mut temp = (val & 0b01111111) as u8;

            val >>= 7;
            if val != 0 {
                temp |= 0b10000000;
            }

            buf.write_u8(temp).await?;

            if val == 0 {
                break;
            }
        }

        Ok(())
    }
}

#[async_trait]
impl Serialize for String {
    async fn decode<R>(buf: &mut R) -> Result<Self, ScanError> where R: Read + Unpin + Send {
        let len = VarInt::decode(buf).await?.0;

        if len < 0 {
            return Err(ScanError::Error("Encoded string is empty".to_owned()));
        } else if len > 32767 * 4 {
            return Err(ScanError::Error("Encoded string is to long".to_owned()));
        }

        let mut bytes: Vec<u8> = Vec::with_capacity(len as usize);
        buf.take(len as u64).read_to_end(&mut bytes).await?;

        let str = String::from_utf8(bytes)?;
        if str.len() > 32767 {
            return Err(ScanError::Error("String is to long".to_owned()))
        }

        Ok(str)
    }

    async fn encode<W>(&self, buf: &mut W) -> Result<(), ScanError> where W: Write + Unpin + Send {
        let bytes = self.as_bytes();
        VarInt(bytes.len() as i32).encode(buf).await?;
        buf.write_all(bytes).await?;
        Ok(())
    }
}<reponame>yilinhan/crates-io
mod features;

#[macro_use]
mod macros;

use syn::parse::Parser;
use syn::{Attribute, Meta};

#[test]
fn test_meta_item_word() {
    let meta = test("#[foo]");

    snapshot!(meta, @r###"
    Path(Path {
        segments: [
            PathSegment {
                ident: "foo",
                arguments: None,
            },
        ],
    })
    "###);
}

#[test]
fn test_meta_item_name_value() {
    let meta = test("#[foo = 5]");

    snapshot!(meta, @r###"
    Meta::NameValue {
        path: Path {
            segments: [
                PathSegment {
                    ident: "foo",
                    arguments: None,
                },
            ],
        },
        lit: 5,
    }
    "###);
}

#[test]
fn test_meta_item_bool_value() {
    let meta = test("#[foo = true]");

    snapshot!(meta, @r###"
    Meta::NameValue {
        path: Path {
            segments: [
                PathSegment {
                    ident: "foo",
                    arguments: None,
                },
            ],
        },
        lit: Lit::Bool {
            value: true,
        },
    }
    "###);

    let meta = test("#[foo = false]");

    snapshot!(meta, @r###"
    Meta::NameValue {
        path: Path {
            segments: [
                PathSegment {
                    ident: "foo",
                    arguments: None,
                },
            ],
        },
        lit: Lit::Bool {
            value: false,
        },
    }
    "###);
}

#[test]
fn test_meta_item_list_lit() {
    let meta = test("#[foo(5)]


'));
    EXPECT_TRUE(CharUtils::isAsciiUpper('Z'));
    EXPECT_FALSE(CharUtils::isAsciiUpper('a'));
    EXPECT_FALSE(CharUtils::isAsciiUpper('z'));
    EXPECT_FALSE(CharUtils::isAsciiUpper('@'));
    EXPECT_FALSE(CharUtils::isAsciiUpper(' '));
    EXPECT_FALSE(CharUtils::isAsciiUpper(0x00C0 /* LATIN CAPITAL LETTER A WITH GRAVE */));
    EXPECT_FALSE(CharUtils::isAsciiUpper(0x00E0 /* LATIN SMALL LETTER A WITH GRAVE */));
    EXPECT_FALSE(CharUtils::isAsciiUpper(0x03C2 /* GREEK SMALL LETTER FINAL SIGMA */));
    EXPECT_FALSE(CharUtils::isAsciiUpper(0x0410 /* CYRILLIC CAPITAL LETTER A */));
    EXPECT_FALSE(CharUtils::isAsciiUpper(0x0430 /* CYRILLIC SMALL LETTER A */));
    EXPECT_FALSE(CharUtils::isAsciiUpper(0x3042 /* HIRAGANA LETTER A */));
    EXPECT_FALSE(CharUtils::isAsciiUpper(0x1F36A /* COOKIE */));
}

TEST(CharUtilsTest, TestToLowerCase) {
    EXPECT_EQ('a', CharUtils::toLowerCase('A'));
    EXPECT_EQ('z', CharUtils::toLowerCase('Z'));
    EXPECT_EQ('a', CharUtils::toLowerCase('a'));
    EXPECT_EQ('z', CharUtils::toLowerCase('z'));
    EXPECT_EQ('@', CharUtils::toLowerCase('@'));
    EXPECT_EQ(' ', CharUtils::toLowerCase(' '));
    EXPECT_EQ(0x00E0 /* LATIN SMALL LETTER A WITH GRAVE */,
            CharUtils::toLowerCase(0x00C0 /* LATIN CAPITAL LETTER A WITH GRAVE */));
    EXPECT_EQ(0x00E0 /* LATIN SMALL LETTER A WITH GRAVE */,
            CharUtils::toLowerCase(0x00E0 /* LATIN SMALL LETTER A WITH GRAVE */));
    EXPECT_EQ(0x03C2 /* GREEK SMALL LETTER FINAL SIGMA */,
            CharUtils::toLowerCase(0x03C2 /* GREEK SMALL LETTER FINAL SIGMA */));
    EXPECT_EQ(0x0430 /* CYRILLIC SMALL LETTER A */,
            CharUtils::toLowerCase(0x0410 /* CYRILLIC CAPITAL LETTER A */));
    EXPECT_EQ(0x0430 /* CYRILLIC SMALL LETTER A */,
            CharUtils::toLowerCase(0x0430 /* CYRILLIC SMALL LETTER A */));
    EXPECT_EQ(0x3042 /* HIRAGANA LETTER A */,
            CharUtils::toLowerCase(0x3042 /* HIRAGANA LETTER A */));
    EXPECT_EQ(0x1F36A /* COOKIE */, CharUtils::toLowerCase(0x1F36A /* COOKIE */));
}

TEST(CharUtilsTest, TestToBaseLowerCase) {
    EXPECT_EQ('a', CharUtils::toBaseLowerCase('A'));
    EXPECT_EQ('z', CharUtils::toBaseLowerCase('Z'));
    EXPECT_EQ('a', CharUtils::toBaseLowerCase('a'));
    EXPECT_EQ('z', CharUtils::toBaseLowerCase('z'));
    EXPECT_EQ('@', CharUtils::toBaseLowerCase('@'));
    EXPECT_EQ(' ', CharUtils::toBaseLowerCase(' '));
    EXPECT_EQ('a', CharUtils::toBaseLowerCase(0x00C0 /* LATIN CAPITAL LETTER A WITH GRAVE */));
    EXPECT_EQ('a', CharUtils::toBaseLowerCase(0x00E0 /* LATIN SMALL LETTER A WITH GRAVE */));
    EXPECT_EQ(0x03C2 /* GREEK SMALL LETTER FINAL SIGMA */,
            CharUtils::toBaseLowerCase(0x03C2 /* GREEK SMALL LETTER FINAL SIGMA */));
    EXPECT_EQ(0x0430 /* CYRILLIC SMALL LETTER A */,
            CharUtils::toBaseLowerCase(0x0410 /* CYRILLIC CAPITAL LETTER A */));
    EXPECT_EQ(0x0430 /* CY


,
	"params": {"tun": {"vport":1,"tci":[1,2]}, "meta":true },
	"id": 3 }`))

	o.tctx.Veth.AppendSimuationRPC([]byte(`{"jsonrpc": "2.0",
	"method":"ipv6_ns_cnt",
	"params": {"tun": {"vport":1,"tci":[1,2]}, "meta":false, "zero":false },
	"id": 3 }`))

	o.tctx.Veth.AppendSimuationRPC([]byte(`{"jsonrpc": "2.0",
	"method":"ipv6_mld_ns_add",
	"params": {"tun": {"vport":1,"tci":[1,2]}, "vec": [ [251, 2, 0,0, 0,0,0,0, 0,0,0,0, 0,1,0,0 ] ] } ,
	"id": 3 }`))

	o.tctx.Veth.AppendSimuationRPC([]byte(`{"jsonrpc": "2.0",
	"method":"ipv6_mld_ns_add",
	"params": {"tun": {"vport":1,"tci":[1,2]}, "vec": [ [251, 2, 0,0, 0,0,0,0, 0,0,0,0, 0,1,0,0 ] ] } ,
	"id": 3 }`))

	o.tctx.Veth.AppendSimuationRPC([]byte(`{"jsonrpc": "2.0",
	"method":"ipv6_mld_ns_remove",
	"params": {"tun": {"vport":1,"tci":[1,2]}, "vec": [ [251, 2, 0,0, 0,0,0,0, 0,0,0,0, 0,1,0,0 ] ] } ,
	"id": 3 }`))

	o.tctx.Veth.AppendSimuationRPC([]byte(`{"jsonrpc": "2.0",
	"method":"ipv6_mld_ns_iter",
	"params": {"tun": {"vport":1,"tci":[1,2]}, "reset": true, "count" : 99},
	"id": 3 }`))

	o.tctx.Veth.AppendSimuationRPC([]byte(`{"jsonrpc": "2.0",
	"method":"ipv6_mld_ns_iter",
	"params": {"tun": {"vport":1,"tci":[1,2]}, "reset": false, "count" : 100},
	"id": 3 }`))

}

func TestPluginMldv2_rpc1(t *testing.T) {

	a := &IcmpTestBase{
		testname:     "mld2_rpc1",
		monitor:      false,
		match:        3,
		capture:      true,
		duration:     1 * time.Minute,
		clientsToSim: 1,
		mcToSim:      3,
		cb:           rpcQueue,
		cbArg1:       1,
	}
	a.Run(t, true) // the timestamp making a new json due to the timestamp. skip the it
}

func TestPluginNd_adv1(t *testing.T) {

	a := &IcmpTestBase{
		testname:     "ipv6nd_1",
		monitor:      false,
		match:        4,
		capture:      true,
		duration:     1 * time.Minute,
		clientsToSim: 1,
		cb:           Cb4,
		flush:        1,
	}
	a.Run(t, true) // the timestamp making a new json due to the timestamp. skip the it
}

func CalcIpv6LocalLink(l6 *core.Ipv6Key, mac *core.MACKey) {
	l6[0] = 0xFE
	l6[1] = 0x80
	l6[2] = 0
	l6[3] = 0
	l6[4] = 0
	l6[5] = 0
	l6[6] = 0
	l6[7] = 0
	l6[8] = mac[0] ^ 0x2
	l6[9


', 'MATERIAL', 'META', 'MESH', 'MOVIECLIP', 'NODETREE', 'OBJECT', 'PAINTCURVE', 'PALETTE', 'PARTICLE', 'LIGHT_PROBE', 'SCENE', 'SOUND', 'SPEAKER', 'TEXT', 'TEXTURE', 'WINDOWMANAGER', 'WORLD', 'WORKSPACE'], default 'OBJECT'
     */
    public set id_type(value: 'ACTION' | 'ARMATURE' | 'BRUSH' | 'CAMERA' | 'CACHEFILE' | 'CURVE' | 'FONT' | 'GREASEPENCIL' | 'COLLECTION' | 'IMAGE' | 'KEY' | 'LIGHT' | 'LIBRARY' | 'LINESTYLE' | 'LATTICE' | 'MASK' | 'MATERIAL' | 'META' | 'MESH' | 'MOVIECLIP' | 'NODETREE' | 'OBJECT' | 'PAINTCURVE' | 'PALETTE' | 'PARTICLE' | 'LIGHT_PROBE' | 'SCENE' | 'SOUND' | 'SPEAKER' | 'TEXT' | 'TEXTURE' | 'WINDOWMANAGER' | 'WORLD' | 'WORKSPACE') {
        PythonInterop.setEnum(this.interop, `${this.accessor}.id_type`, value)
    }

    /**
     * When an ‘array/vector’ type is chosen (Location, Rotation, Color, etc.), entire array is to be used
     * @desc boolean, default False
     */
    public set use_entire_array(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_entire_array`, value)
    }

    /**
     * Only insert keyframes where they’re needed in the relevant F-Curves
     * @desc boolean, default False
     */
    public set use_insertkey_needed(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_insertkey_needed`, value)
    }

    /**
     * Override default setting to only insert keyframes where they’re needed in the relevant F-Curves
     * @desc boolean, default False
     */
    public set use_insertkey_override_needed(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_insertkey_override_needed`, value)
    }

    /**
     * Override default setting to insert keyframes based on ‘visual transforms’
     * @desc boolean, default False
     */
    public set use_insertkey_override_visual(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_insertkey_override_visual`, value)
    }

    /**
     * Override default setting to set color for newly added transformation F-Curves (Location, Rotation, Scale) to be based on the transform axis
     * @desc boolean, default False
     */
    public set use_insertkey_override_xyz_to_rgb(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_insertkey_override_xyz_to_rgb`, value)
    }

    /**
     * Insert keyframes based on ‘visual transforms’
     * @desc boolean, default False
     */
    public set use_insertkey_visual(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_insertkey_visual`, value)
    }

    /**
     * Color for newly added transformation F-Curves (Location, Rotation, Scale) is based on the transform axis
     * @desc boolean, default False
     */
    public set use_insertkey_xyz_to_rgb(value: boolean) {
        PythonInterop.setBoolean(this.interop, `${this.accessor}.use_insertkey_xyz_to_rgb`, value)
    }

    [util.inspect.custom]() {
        return this.accessor
    }
}
import { Entity, PrimaryGeneratedColumn, Column } from "typeorm";


   debug!(
                target: LOG_TARGET,
                "Streamed utxos {} to {} in {:.2?} (including stream backpressure)",
                start,
                end,
                timer.elapsed()
            );

            prev_header = current_header;
        }

        debug!(
            target: LOG_TARGET,
            "UTXO sync completed to UTXO {} (Header hash = {})",
            prev_header.output_mmr_size,
            prev_header.hash().to_hex()
        );

        Ok(())
    }
}
<reponame>snaar/chopper
use std::fs::remove_file;
use std::path::Path;

use futures::future::join_all;
use tokio::task::JoinHandle;

use chopper::chopper::error::Result;
use chopper::chopper::types::TIMESTAMP_RANGE_ALL;
use chopper::driver::util::header::get_header_from_sources;
use chopper::driver::util::sink::drive_output;
use chopper::driver::util::source::{drive_sources, inputs_to_sources_with_factory};
use chopper::driver::util::splitter::drive_splitter;
use chopper::input::builder::source::SourceInputFactoryBuilder;
use chopper::util::dc_factory::DCFactory;
use chopper::util::file::are_contents_same;

#[tokio::test]
async fn test_split() {
    let input = "./tests/input/hundred.dc";
    let output_1 = "./tests/output/test_split_1.csv";
    let output_2 = "./tests/output/test_split_2.csv";
    remove_file(output_1).unwrap();
    remove_file(output_2).unwrap();
    assert!(!Path::new(output_1).exists());
    assert!(!Path::new(output_2).exists());
    drive(input, output_1, output_2).await.unwrap();
    assert!(are_contents_same(output_1, "./tests/reference/test_split_1.csv").unwrap());
    assert!(are_contents_same(output_2, "./tests/reference/test_split_2.csv").unwrap());
}

async fn drive(input: &str, output_1: &str, output_2: &str) -> Result<()> {
    let input_factory = SourceInputFactoryBuilder::new()
        .with_dc_factory(Some(DCFactory::default()))
        .build()?;
    let sources =
        inputs_to_sources_with_factory(&input_factory, &vec![input.into()], &TIMESTAMP_RANGE_ALL)?;
    let header = get_header_from_sources(&sources)?;

    let mut drivers: Vec<JoinHandle<()>> = Vec::new();

    let (output_1_tx, output_1_handle) = drive_output(&output_1.into(), &header).await?;
    let (output_2_tx, output_2_handle) = drive_output(&output_2.into(), &header).await?;
    drivers.push(output_1_handle);
    drivers.push(output_2_handle);

    let (splitter_tx, splitter_handle) = drive_splitter(vec![output_1_tx, output_2_tx]).await;
    drivers.push(splitter_handle);

    drivers.append(
        drive_sources(sources, splitter_tx, TIMESTAMP_RANGE_ALL)
            .await
            .as_mut(),
    );

    join_all(drivers).await;
    Ok(())
}
<filename>src/error.rs<gh_stars>0
/// All possible errors emitted by the driver
#[derive(Debug, Clone, Copy)]
pub enum Error<SpiError> {
    /// Internal Spi error
    Spi(SpiError),

    /// Invalid value passed
    Value,

    /// Address out of bound
    OutOfBounds,

    /// Address not aligned
    NotAligned,

    /// The device is busy
    Busy,
}
<reponame>ashrithr/navi
use std::fs;
use std::fs::metadata;
use std::fs::File;
use std::io::{self, BufRead, BufReader, Lines};
use std::path::{Path, PathBuf};

pub fn read_lines<P>(filename: P) -> io::Result<Lines<BufReader<File>>>
where
    P: AsRef<Path>,
{
    let file = File::open(filename)?;
    Ok(io::Buf


;
- (_Bool)isContactSelected:(id)arg1;
- (_Bool)isWhiteCellRow:(id)arg1;
- (id)getContactAtIndexPath:(id)arg1;
- (void)finishSelectMember;
- (void)cancelSaveSelectedMember;
- (void)cancelSelectMember;
- (void)keyboardWillHide:(id)arg1;
- (void)keyboardWillShow:(id)arg1;
- (_Bool)textField:(id)arg1 shouldChangeCharactersInRange:(struct _NSRange)arg2 replacementString:(id)arg3;
- (void)textFieldDidChange:(id)arg1;
- (void)updateContentStatus;
- (id)getTotalAmonutString;
- (void)confirmToCleanUp;
- (void)cancelToCleanup;
- (void)cleanUpBtnPress:(id)arg1;
- (void)setupToolBarContent;
- (void)setupTopbarViewContent;
- (void)cellTextFieldKeyboardPressNextBtn:(id)arg1;
- (void)cellTextFieldKeyboardPressPreviousBtn:(id)arg1;
- (void)cellTextFieldDidEndEdittingWithCell:(id)arg1 withContact:(id)arg2 withValue:(double)arg3;
- (void)cellTextFieldDidChangeWithCell:(id)arg1 withContact:(id)arg2 withValue:(double)arg3;
- (void)cellTextFieldWillBeginEdittingWithCell:(id)arg1 withContact:(id)arg2;
- (_Bool)cellTextFieldShouldBeginEdittingWithCell:(id)arg1 withContact:(id)arg2;
- (void)makeWhiteCellWithIndexPath:(id)arg1 withCell:(id)arg2;
- (_Bool)tableView:(id)arg1 shouldHighlightRowAtIndexPath:(id)arg2;
- (void)tableView:(id)arg1 didSelectRowAtIndexPath:(id)arg2;
- (id)tableView:(id)arg1 cellForRowAtIndexPath:(id)arg2;
- (double)tableView:(id)arg1 heightForRowAtIndexPath:(id)arg2;
- (long long)tableView:(id)arg1 numberOfRowsInSection:(long long)arg2;
- (void)setupContentView;
- (void)setupData;
- (void)layoutSubviews;
- (void)refreshContentViewWithChatroomContact:(id)arg1 selectedContactArray:(id)arg2 userPayAmountDict:(id)arg3;
- (id)initWithFrame:(struct CGRect)arg1;
- (void)dealloc;

// Remaining properties
@property(readonly, copy) NSString *debugDescription;
@property(readonly, copy) NSString *description;
@property(readonly) unsigned long long hash;
@property(readonly) Class superclass;

@end


son:"restart"`
}

func HandleShutdownRequest(receipt MsgReceipt) {
    reply := NewMsg("shutdown_reply", receipt.Msg)
    content := receipt.Msg.Content.(map[string]interface{})
    restart := content["restart"].(bool)
    reply.Content = ShutdownReply{restart}
    receipt.SendResponse(receipt.Sockets.Shell_socket, reply)
    logger.Println("Shutting down in response to shutdown_request")
    os.Exit(0)
}

// RunKernel is the main entry point to start the kernel. This is what is called by the
// igo executable.
func RunKernel(connection_file string, logwriter io.Writer) {
    logger = log.New(logwriter, "igopkg ", log.LstdFlags)
    SetupExecutionEnvironment()
    var conn_info ConnectionInfo
    bs, err := ioutil.ReadFile(connection_file)
    if err != nil {
        log.Fatalln(err)
    }
    err = json.Unmarshal(bs, &conn_info)
    if err != nil {
        log.Fatalln(err)
    }
    logger.Printf("%+v\n", conn_info)
    sockets := PrepareSockets(conn_info)

    pi := zmq.PollItems{
        zmq.PollItem{Socket: sockets.Shell_socket, Events: zmq.POLLIN},
        zmq.PollItem{Socket: sockets.Stdin_socket, Events: zmq.POLLIN},
        zmq.PollItem{Socket: sockets.Control_socket, Events: zmq.POLLIN},
    }
    var msgparts [][]byte
    // Message receiving loop:
    for {
        _, err = zmq.Poll(pi, -1)
        if err != nil {
            log.Fatalln(err)
        }
        switch {
        case pi[0].REvents&zmq.POLLIN != 0:  // shell socket
            msgparts, _ = pi[0].Socket.RecvMultipart(0)
            msg, ids, err := WireMsgToComposedMsg(msgparts, sockets.Key)
            if err != nil {
                fmt.Println(err)
                return
            }
            HandleShellMsg(MsgReceipt{msg, ids, sockets})
        case pi[1].REvents&zmq.POLLIN != 0:  // stdin socket - not implemented.
            pi[1].Socket.RecvMultipart(0)
        case pi[2].REvents&zmq.POLLIN != 0:  // control socket - treat like shell socket.
            msgparts, _ = pi[2].Socket.RecvMultipart(0)
            msg, ids, err := WireMsgToComposedMsg(msgparts, sockets.Key)
            if err != nil {
                fmt.Println(err)
                return
            }
            HandleShellMsg(MsgReceipt{msg, ids, sockets})
        }
    }
}
package main

import (
	crand "crypto/rand"
	"encoding/json"
	"fmt"
	"log/slog"
	"net"
	"net/http"
	"os"
	"os/exec"
	"strconv"

	"github.com/go-chi/chi/v5"
	"github.com/go-chi/chi/v5/middleware"
	"github.com/go-sql-driver/mysql"
	"github.com/jmoiron/sqlx"
)

var db *sqlx.DB

func main() {
	mux := setup()
	slog.Info("Listening on :8080")
	http.ListenAndServe(":8080", mux)
}

func setup() http.Handler {
	host := os.Getenv("ISUCON_DB_HOST")
	if host == "" {
		host = "127.0.0.1"
	}
	port := os.Getenv("ISUCON_DB_PORT")
	if port == "" {
		port = "3306"
	}
	_, err := strconv.Atoi(port)
	if err != nil {
		panic(fmt.Sprintf("failed to convert DB port number from ISUCON_DB_PORT environment variable into int: %v", err))
	}
	user


(highestValue >= 160) {
      gridSize = 200;
    } else if (highestValue >= 120) {
      gridSize = 160;
    } else if (highestValue >= 80) {
      gridSize = 120;
    } else {
      gridSize = 80;
    }

  }

  function galleryGetActiveLine(x, y, metroMap) {
    // Given an x, y coordinate pair, return the hex code for the line you're on.
    // Use this to retrieve the line for a given point on a map.
    if (metroMap && metroMap[x] && metroMap[x][y] && metroMap[x][y]["line"]) {
      return metroMap[x][y]["line"];
    } else {
      // 'With the new straight lines replacing the old bubbles system of drawing the maps onto the canvas, you will land here on occasion when the maps reach the borders. (For example, y-80 which does not exist in the 80x80 grid.) Do not panic, instead just keep on keeping on.'
      return false;
    }
  }

  function galleryLoadMapFromSavedMapData(metroMapObject, mapId) {
     for (var x in metroMapObject) {
        if (metroMapObject.hasOwnProperty(x)) {
          for (var y in metroMapObject[x]) {
            if (metroMapObject[x].hasOwnProperty(y)) {
              $('#m-' + mapId + 'coord-x-' + x + '-y-' + y).addClass('has-line');
              $('#m-' + mapId + 'coord-x-' + x + '-y-' + y).addClass('has-line-' + metroMapObject[x][y]['line']);
              $('#m-' + mapId + 'coord-x-' + x + '-y-' + y).css({
                  'background-color': '#' + metroMapObject[x][y]['line']
              });
              if (metroMapObject[x][y]["station"]) {
                $('#m-' + mapId + 'coord-x-' + x + '-y-' + y).addClass('has-station');
                $('#m-' + mapId + 'coord-x-' + x + '-y-' + y).html('

');
                if (metroMapObject[x][y]["station"]["transfer"] == 1) {
                  $('#m-' + mapId + '-' + metroMapObject[x][y]["station"]["name"]).addClass('transfer-station');
                }
                if (metroMapObject[x][y]["station"]["lines"] && metroMapObject[x][y]['station']['name']) {
                  for (var z=0; z<metroMapObject[x][y]["station"]["lines"].length; z++) {
                    $('#m-' + mapId + '-' + metroMapObject[x][y]["station"]["name"]).addClass('has-line-' + metroMapObject[x][y]["station"]["lines"][z]);
                    // Rail line buttons should use their color for the buttons, too.
                    $('


 4B FE FB F5 */	bl func_80182624
/* 80192A34 0018E694  7C 9A 78 2E */	lwzx r4, r26, r15
/* 80192A38 0018E698  7E E3 BB 78 */	mr r3, r23
/* 80192A3C 0018E69C  A0 A1 00 0A */	lhz r5, 0xa(r1)
/* 80192A40 0018E6A0  38 E0 00 00 */	li r7, 0
/* 80192A44 0018E6A4  7C D8 80 2E */	lwzx r6, r24, r16
/* 80192A48 0018E6A8  48 00 98 C1 */	bl func_8019C308
/* 80192A4C 0018E6AC  7C 1E 18 00 */	cmpw r30, r3
/* 80192A50 0018E6B0  7C 71 1B 78 */	mr r17, r3
/* 80192A54 0018E6B4  40 80 00 3C */	bge lbl_80192A90
/* 80192A58 0018E6B8  7C 9A 78 2E */	lwzx r4, r26, r15
/* 80192A5C 0018E6BC  7E E3 BB 78 */	mr r3, r23
/* 80192A60 0018E6C0  38 A0 00 27 */	li r5, 0x27
/* 80192A64 0018E6C4  4B FE FD E5 */	bl func_80182848
/* 80192A68 0018E6C8  54 60 06 3F */	clrlwi. r0, r3, 0x18
/* 80192A6C 0018E6CC  40 82 00 24 */	bne lbl_80192A90
/* 80192A70 0018E6D0  7C 9A 78 2E */	lwzx r4, r26, r15
/* 80192A74 0018E6D4  7E E3 BB 78 */	mr r3, r23
/* 80192A78 0018E6D8  38 A0 00 07 */	li r5, 7
/* 80192A7C 0018E6DC  4B FE DD 81 */	bl func_801807FC
/* 80192A80 0018E6E0  2C 03 00 00 */	cmpwi r3, 0
/* 80192A84 0018E6E4  40 82 00 0C */	bne lbl_80192A90
/* 80192A88 0018E6E8  7E 3E 8B 78 */	mr r30, r17
/* 80192A8C 0018E6EC  7F FA 78 2E */	lwzx r31, r26, r15
lbl_80192A90:
/* 80192A90 0018E6F0  3A B5 00 01 */	addi r21, r21, 1
/* 80192A94 0018E6F4  28 15 00 1C */	cmplwi r21, 0x1c
/* 80192A98 0018E6F8  41 80 FF 84 */	blt lbl_80192A1C
/* 80192A9C 0018E6FC  3A 94 00 01 */	addi r20, r20, 1
lbl_80192AA0:
/* 80192AA0 0018E700  56 80 06 3E */	clrlwi r0, r20, 0x18
/* 80192AA4 0018E704  7C 00 D8 00 */	cmpw r0, r27
/* 80192AA8 0018E708  41 80 FE DC */	blt lbl_80192984
lbl_80192AAC:
/* 80192AAC 0018E70C  3A 73 00 01 */	addi r19, r19, 1
lbl_80192AB0:
/* 80192AB0 0018E710  56 60 06 3E */	clrlwi r0, r19, 0x18
/* 80192AB4 0018E714  7C 00 C8 00 */	cmpw r0, r25
/* 80192AB8 0018E718


.com/en/java/javase/17/docs/api/java.base/java/lang/Enum.html#toString()" title="Klasse oder Schnittstelle in java.lang" class="external-link">toString, valueOf

Von Klasse geerbte Methoden java.lang.Object

getClass, notify, notifyAll, wait, wait, wait

Enum-Konstanten - Details

RED

public static final InterfaceWithProperties.Color RED

GREEN

public static final InterfaceWithProperties.Color GREEN

<h


method = 'PredRNNpp'
# reverse scheduled sampling
reverse_scheduled_sampling = 0
r_sampling_step_1 = 25000
r_sampling_step_2 = 50000
r_exp_alpha = 5000
# scheduled sampling
scheduled_sampling = 1
sampling_stop_iter = 50000
sampling_start_value = 1.0
sampling_changing_rate = 0.00002
# model
num_hidden = '128,128,128,128'
filter_size = 5
stride = 1
patch_size = 2
layer_norm = 0
# training
lr = 1e-4
batch_size = 4 # bs16 = 4gpus x bs4
sched = 'cosine'
warmup_epoch = 0