 mov rSS = _DataSelector
        mov rDS = _DataSelector
        mov rGS = _DataSelector
        mov rCS = _CodeSelector
        mov rFS = _FsSelector
        mov rLDT    = _LdtSelector

//  Setup pointer to iA32 Resources relative to TEB

        mov r23 = rIA32Rsrc
        add rIA32Ptr = rBase, r23

        ld8    rGDTD   = [rIA32Ptr], 8      //  load LDT Descriptor registers
        ld8    rLDTD   = [rIA32Ptr], 8      //  GDT Descriptor is 8 bytes after
        ld8    rFSD    = [rIA32Ptr]         //  FSDescriptor is 8 bytes after

//  Eflag should not be touched by stub routines...

// Since CSD and SSD are in AR registers and since they are saved
// on context switches, dont need to reload them...

//  DSD and ESD are the same as SSD, and we dont care about GSD

        mov rESD    =   rSSD
        mov rDSD    =   rSSD
        mov rGSD    =   rSSD

// push the return address on the memory stack

// As we never return, just push NULL...

// Stack always points to a valid value, so decrement before putting on
// return address

        adds    sp = -4, sp
        st4     [sp] = r0

        ARGPTR (in0)
        sxt4   r23 = in0
        mov b7 = r23

        br.ia.sptk   b7

// Return addresses and stuff would go here, but we never return

        LEAF_EXIT(GenericIACall)
#endif


cted components of A */
    /* ---------------------------------------------------------------------- */

    nblocks = btf_l_strongcomp (n, Ap, Ai, Q, P, R, Work) ;

    /* ---------------------------------------------------------------------- */
    /* create outputs and free workspace */
    /* ---------------------------------------------------------------------- */

    /* create P */
    pargout [0] = mxCreateDoubleMatrix (1, n, mxREAL) ;
    Px = mxGetPr (pargout [0]) ;
    for (k = 0 ; k < n ; k++)
    {
        Px [k] = P [k] + 1 ;            /* convert to 1-based */
    }

    /* create Q */
    if (nargin == 2 && nargout > 1)
    {
        pargout [1] = mxCreateDoubleMatrix (1, n, mxREAL) ;
        Qx = mxGetPr (pargout [1]) ;
        for (k = 0 ; k < n ; k++)
        {
            Qx [k] = Q [k] + 1 ;        /* convert to 1-based */
        }
    }

    /* create R */
    if (nargout == nargin + 1)
    {
        pargout [nargin] = mxCreateDoubleMatrix (1, nblocks+1, mxREAL) ;
        Rx = mxGetPr (pargout [nargin]) ;
        for (b = 0 ; b <= nblocks ; b++)
        {
            Rx [b] = R [b] + 1 ;                /* convert to 1-based */
        }
    }

    mxFree (P) ;
    mxFree (R) ;
    mxFree (Work) ;
    if (nargin == 2)
    {
        mxFree (Q) ;
    }
}


3154_1333154.next_page=/wc/buscarIniciativasForm?tipoIniciativas=1&idDiputado=104&origen=diputados&idLegislatura=5&muestraLeg=false' class='' id = 'enlaceTodas' >Todas

                                        Por tipo de iniciativa

         |

                        Por Orden cronológico

        <meta name="Title" content="Cotoner Goyeneche, Joaquín">
        <meta name="Description" content="Ficha del Diputado Joaquín Cotoner Goyeneche en la 5 legislatura">

PP

V Legislatura ( 1993-1996 )

Cotoner Goyeneche, Joaquín

                      Diputado por

                    Baleares.

<a href='http://www.congreso.es/portal/page/portal/Congreso/Congreso/Diputados/BusqForm?_piref73_1333155_73_1333154_1333154.next_page=/wc/composicion


from dotenv import load_dotenv
from pathlib import Path
import subprocess, os, time

def run_chroma():
    try:
        dotenv_path = Path(__file__).resolve().parent.parent / ".env"
        load_dotenv(dotenv_path=dotenv_path)

        # 환경 변수 로드
        CHROMA_PORT = os.getenv("CHROMA_PORT")
        CHROMA_PATH = os.getenv("CHROMA_PATH")

        if not CHROMA_PORT or not CHROMA_PATH:
            raise ValueError(" .env 파일에 CHROMA_PORT 또는 CHROMA_PATH가 정의되지 않았습니다.")

        if not os.path.exists(CHROMA_PATH):
            raise FileNotFoundError(f" CHROMA_PATH 경로가 존재하지 않습니다: {CHROMA_PATH}")

        command = f"nohup chroma run --host 0.0.0.0 --port {CHROMA_PORT} --path {CHROMA_PATH} > chroma.log 2>&1 &"
        subprocess.Popen(command, shell=True)

        print(f" ChromaDB가 백그라운드에서 실행되었습니다. (PORT: {CHROMA_PORT})")
        time.sleep(2)

        # 실행 확인 (lsof로 포트 점유 확인)
        print(" 실행된 포트 확인 중...")
        check_command = f"lsof -i :{CHROMA_PORT}"
        os.system(check_command)

    except FileNotFoundError as fe:
        print(fe)
    except Exception as e:
        print(" 예기치 못한 오류 발생:", e)

if __name__ == "__main__":
    run_chroma()


 { block_data: BlockData(raw) };
	pov
}
<gh_stars>0
//! An app demonstrating the basics of the metrics front-end.
//! Defines metrics of each kind and use them to print values to the console in multiple ways.

extern crate dipstick;

use dipstick::*;
use std::io;
use std::thread::sleep;
use std::time::Duration;

fn main() {
    // for this demo, print metric values to the console
    let app_metrics = Stream::write_to(io::stdout()).metrics();

    // metrics can be predefined by type and name
    let counter = app_metrics.counter("counter_a");
    let level = app_metrics.level("level_a");
    let timer = app_metrics.timer("timer_b");

    // metrics can also be declared and used ad-hoc (use output.cache() if this happens often)
    app_metrics.counter("just_once").count(4);

    // metric names can be prepended with a common prefix
    let prefixed_metrics = app_metrics.named("subsystem");
    let event = prefixed_metrics.marker("event_c");
    let gauge = prefixed_metrics.gauge("gauge_d");

    // each kind of metric has a different method name to prevent errors
    counter.count(11);
    level.adjust(-4);
    level.adjust(5);

    gauge.value(22);
    gauge.value(-24);

    event.mark();

    // time can be measured multiple equivalent ways:
    // in microseconds (used internally)
    timer.interval_us(35573);

    // using the time! macro
    time!(timer, sleep(Duration::from_millis(5)));

    // using a closure
    timer.time(|| sleep(Duration::from_millis(5)));

    // using a "time handle"
    let start_time = timer.start();
    Duration::from_millis(5);
    timer.stop(start_time);
}
//! Full AST representation
//!
//! Based on *EBNF* grammar
use nom::IResult;
use nom_locate::LocatedSpan;

/// Span is basic lexical component
pub(crate) type Span<'a> = LocatedSpan<&'a str>;

pub(crate) type ParseResult<'a, T> = IResult<Span<'a>, T>;

/// Ident (identifier) token
/// It's basic component for many tokens and rules
pub type Ident<'a> = Span<'a>;

/// Expression Operations
/// Describe type of operations for expressions
#[derive(Debug, Clone, PartialEq)]
pub enum ExpressionOperation {
    Plus,
    Minus,
    Multiply,
    Divide,
    ShiftLeft,
    ShiftRight,
}

/// Parameter value used for broad cases
/// used for represent values
pub type ParameterValue<'a> = Ident<'a>;

/// Parameter type used for broad cases type representation
/// especial for ParameterValue
pub type ParameterType<'a> = Vec<Ident<'a>>;

/// Return type for functions
pub type ReturnType<'a> = ParameterType<'a>;

/// Parameter value type - contain Values and its type
#[derive(Debug, Clone, PartialEq)]
pub enum ParameterValueType<'a> {
    Value(ParameterValue<'a>),
    ValueType(ParameterValue<'a>, ParameterType<'a>),
}

/// List of parameters values
#[derive(Debug, Clone, PartialEq)]
pub enum ParameterValueList<'a> {
    ParameterValue(ParameterValue<'a>),
    ParameterList(Vec<ParameterValueType<'a>>),
}

/// List of parameters
#[derive(Debug, Clone, PartialEq)]
pub enum ParameterList<'a> {
    ParameterList(ParameterValueList<'a>),
    ParameterValueList(Vec<ParameterValueList<'a>>),
}

/// List of Values
#[derive(Debug, Clone, PartialEq)]
pub enum ValueExpres


is=1))
npy.mean(lsq_error_2,axis=0)
for i in range(0,10):
    for j in range(1,6):
        trans=npy.loadtxt("AR_{0}/estimated_trans_{1}.txt".format(aspace2[i],j))
        trans=trans.reshape((8,3,3))
        trans+=0.00001
        for k in range(0,8):
             trans[k]/=trans[k].sum()
       ce_error_2[i,j-1]=-npy.sum(orig[:,:,:]*npy.log(trans[:,:,:]))
       lsq_error_2[i,j-1]=npy.sum((orig[:,:,:]-trans[:,:,:])**2)

for i in range(0,10):
    for j in range(1,6):
        trans=npy.loadtxt("AR_{0}/estimated_trans_{1}.txt".format(aspace2[i],j))
        trans=trans.reshape((8,3,3))
        trans+=0.00001
        for k in range(0,8):
             trans[k]/=trans[k].sum()
       ce_error_2[i,j-1]=-npy.sum(orig[:,:,:]*npy.log(trans[:,:,:]))
       lsq_error_2[i,j-1]=npy.sum((orig[:,:,:]-trans[:,:,:])**2)

for i in range(0,10):
    for j in range(1,6):
        trans=npy.loadtxt("AR_{0}/estimated_trans_{1}.txt".format(aspace2[i],j))
        trans=trans.reshape((8,3,3))
        trans+=0.00001
        for k in range(0,8):
            trans[k]/=trans[k].sum()
        ce_error_2[i,j-1]=-npy.sum(orig[:,:,:]*npy.log(trans[:,:,:]))
        lsq_error_2[i,j-1]=npy.sum((orig[:,:,:]-trans[:,:,:])**2)

lsq_error_2
ce_error_2
npy.mean(ce_error_2,axis=1)
npy.min(npy.mean(ce_error_2,axis=1))
npy.min(npy.mean(lsq_error_2,axis=1))
(npy.mean(lsq_error_2,axis=1))
get_ipython().magic(u'ls ')
get_ipython().magic(u'save EXPT.py 1-225')


:Any):Boolean">  final  def ==(arg0: Any): Boolean

Definition Classes

AnyRef → Any

  final  def asInstanceOf[T0]: T0

Definition Classes

Any

   def clone(): AnyRef

Attributes

protected[lang]

Definition Classes

AnyRef

Annotations

@throws(classOf[java.lang.CloneNotSupportedException]) @native()

 <a hr


nodes.popBack())
    print(nodes.popBack())
    print(len(nodes))
    print(str(nodes))

    print('从头部插入')
    nodes.pushFront(11)
    nodes.pushFront(12)
    nodes.pushFront(13)
    print(len(nodes))
    print(str(nodes))

    print('从头部删除')
    print(nodes.find(12))
    print(nodes.find(15))
    print(nodes.popFront())
    print(nodes.popFront())
    print(len(nodes))
    print(str(nodes))

    print('任意增删')
    nodes.insert(0,22)
    print(str(nodes))
    nodes.insert(1,33)
    print(str(nodes))
    nodes.insert(2,44)
    print(str(nodes))
    nodes.insert(3,55)
    print(str(nodes))
    nodes.reverse()
    print(str(nodes))
    nodes.remove(0)
    print(str(nodes))
    nodes.remove(1)
    print(str(nodes))
    nodes.remove(len(nodes)-1)
    print(str(nodes))
    nodes.reverse()
    print(str(nodes))


, #0x10]
	cmp     r0, #0x0
	beq     branch_2258e50
	ldr     r1, [pc, #0x98] @ 0x2258e54, (=RAM_21bf6bc)
	ldrh    r2, [r1, #0x1c]
	ldr     r1, [pc, #0x98] @ 0x2258e58, (=0xffff)
	cmp     r2, r1
	beq     branch_2258e50
	beq     branch_2258e50
	add     r1, sp, #0x8
	str     r1, [sp, #0x0]
	add     r1, sp, #0x14
	add     r2, sp, #0xc
	add     r3, sp, #0x10
	bl      Function_22596b0
	ldr     r0, [r4, #0x10]
	add     r1, sp, #0x1c
	add     r2, sp, #0x18
	bl      Function_2259698
	ldr     r0, [pc, #0x74] @ 0x2258e54, (=RAM_21bf6bc)
	ldr     r1, [r4, #0x14]
	ldrh    r2, [r0, #0x1c]
	ldr     r3, [sp, #0x18]
	sub     r5, r2, r1
	ldrh    r1, [r0, #0x1e]
	ldr     r0, [r4, #0x18]
	ldr     r2, [sp, #0x1c]
	sub     r6, r1, r0
	ldr     r0, [sp, #0xc]
	ldr     r1, [sp, #0x10]
	sub     r0, r2, r0
	ldr     r2, [sp, #0x8]
	add     r7, r6, r1
	sub     r2, r3, r2
	ldr     r3, [sp, #0x14]
	str     r2, [sp, #0x18]
	add     r2, r5, r3
	str     r0, [sp, #0x1c]
	cmp     r2, #0x8a
	bgt     branch_2258e0e
	mov     r0, #0x8a
	sub     r5, r0, r3
	b       branch_2258e18
@ 0x2258e0e

.thumb
branch_2258e0e: @ 2258e0e :thumb
	add     r2, r5, r0
	cmp     r2, #0xf6
	blt     branch_2258e18
	mov     r2, #0xf6
	sub     r5, r2, r0
.thumb
branch_2258e18: @ 2258e18 :thumb
	cmp     r7, #0x12
	bgt     branch_2258e22
	mov     r0, #0x12
	sub     r6, r0, r1
	b       branch_2258e2e
@ 0x2258e22

.thumb
branch_2258e22: @ 2258e22 :thumb
	ldr     r1, [sp, #0x18]
	add     r0, r6, r1
	cmp     r0, #0x8f
	blt     branch_2258e2e
	mov     r0, #0x8f
	sub     r6, r0, r1
.thumb
branch_2258e2e: @ 2258e2e :thumb
	ldr     r0, [sp, #0x4]
	mov     r1, r5
	mov     r2, r6
	bl      Function_2259074
	ldr     r0, [r4, #0x4]
	add     r1, sp, #0x14
	add     r2, sp, #0x10
	bl      Function_2257


a(tmp33, tmp34.(lang.IPersistentMap))
									if err != nil {
										panic(err)
									}
									tmp25 = tmp35
								}
								var v36 any = tmp25
								_ = v36
								// let binding "new-mappings"
								tmp37 := checkDerefVar(var_clojure_DOT_core_read)
								tmp38 := lang.Apply(tmp37, []any{v36, v9})
								var v39 any = tmp38
								_ = v39
								var tmp40 any
								tmp41 := checkDerefVar(var_clojure_DOT_core_not)
								tmp42 := checkDerefVar(var_clojure_DOT_core_map_QMARK_)
								tmp43 := lang.Apply(tmp42, []any{v39})
								tmp44 := lang.Apply(tmp41, []any{tmp43})
								if lang.IsTruthy(tmp44) {
									tmp45 := checkDerefVar(var_clojure_DOT_core_ex_DASH_info)
									tmp46 := checkDerefVar(var_clojure_DOT_core_str)
									tmp47 := lang.Apply(tmp46, []any{"Not a valid data-reader map"})
									tmp48 := lang.NewMap(kw_url, v3)
									tmp49 := lang.NewMap(kw_file, "clojure/core.glj", kw_line, int(7839), kw_column, int(27), kw_end_DASH_line, int(7839), kw_end_DASH_column, int(36))
									tmp50, err := lang.WithMeta(tmp48, tmp49.(lang.IPersistentMap))
									if err != nil {
										panic(err)
									}
									tmp51 := lang.Apply(tmp45, []any{tmp47, tmp50})
									panic(tmp51)
								} else {
								}
								_ = tmp40
								tmp52 := checkDerefVar(var_clojure_DOT_core_reduce)
								var tmp53 lang.FnFunc
								tmp53 = lang.NewFnFunc(func(args ...any) any {
									checkArity(args, 2)
									v54 := args[0]
									_ = v54
									v55 := args[1]
									_ = v55
									var tmp56 any
									{ // let
										// let binding "vec__1011"
										var v57 any = v55
										_ = v57
										// let binding "k"
										tmp58 := checkDerefVar(var_clojure_DOT_core_nth)
										tmp59 := lang.Apply(tmp58, []any{v57, int64(0), nil})
										var v60 any = tmp59
										_ = v60
										// let binding "v"
										tmp61 := checkDerefVar(var_clojure_DOT_core_nth)
										tmp62 := lang.Apply(tmp61, []any{v57, int64(1), nil})
										var v63 any = tmp62
										_ = v63
										var tmp64 any
										tmp65 := checkDerefVar(var_clojure_DOT_core_not)
										tmp66 := checkDerefVar(var_clojure_DOT_core_symbol_QMARK_)
										tmp67 := lang.Apply(tmp66, []any{v60})
										tmp68 := lang.Apply(tmp65, []any{tmp67})
										if lang.IsTruthy(tmp68) {
											tmp69 := checkDerefVar(var_clojure_DOT_core_ex_DASH_info)
											tmp70 := checkDerefVar(var_clojure_DOT_core_str)
											tmp71 := lang.Apply(tmp70, []any{"Invalid form in data-reader file"})
											tmp72 := lang.NewMap(kw_url, v3, kw_form, v60)
											tmp73 := lang.NewMap(kw_file, "clojure/core.glj", kw_line, int(7844), kw_column, int(30), kw_end_DASH_line, int(7845), kw_end_DASH_column, int


:FromHResult(hR));

	if (pResult && pOutParamsInstance)
		hR = pOutParamsInstance->Get(L"ReturnValue", 0, pResult, NULL, NULL);

	if ((pAllOutputParams || pFirstOutParam) && pOutParamsInstance)
	{
		hR = pOutParamsInstance->BeginEnumeration(WBEM_FLAG_NONSYSTEM_ONLY);
		if (!SUCCEEDED(hR))
			return MAKE_STATUS(ActionStatus::FromHResult(hR));

		CComBSTR name;
		CComVariant val;
		for (;;)
		{
			name.AssignBSTR(NULL);
			hR = pOutParamsInstance->Next(0, &name, &val, NULL, NULL);
			if (!name)
				break;

			if (name == L"ReturnValue")
				continue;

			if (pAllOutputParams)
				(*pAllOutputParams)[DynamicStringW(name)] = val;
			else if (pFirstOutParam)
			{
				*pFirstOutParam = val;
				break;
			}

		}
	}

	return MAKE_STATUS(Success);
}

BazisLib::DynamicStringW BazisLib::Win32::WMI::WMIObject::GetPropertyString( LPCWSTR lpPropertyName, ActionStatus *pStatus /*= NULL*/ ) const
{
	if (!m_pObj)
	{
		ASSIGN_STATUS(pStatus, BazisLib::NotInitialized);
		return DynamicStringW();
	}
	CComVariant val;
	HRESULT hR = m_pObj->Get(lpPropertyName, 0, &val, NULL, NULL);
	if (!SUCCEEDED(hR))
	{
		ASSIGN_STATUS(pStatus, BazisLib::ActionStatus::FromHResult(hR));
		return DynamicStringW();
	}
	ASSIGN_STATUS(pStatus, Success);
	if ((val.vt == VT_LPWSTR) || (val.vt == VT_BSTR))
		return DynamicStringW(val.bstrVal);
	val.ChangeType(VT_BSTR);
	return DynamicStringW(val.bstrVal);
}

ATL::CComVariant BazisLib::Win32::WMI::WMIObject::GetPropertyVariant( LPCWSTR lpPropertyName, ActionStatus *pStatus /*= NULL*/ ) const
{
	CComVariant val;
	if (!m_pObj)
	{
		ASSIGN_STATUS(pStatus, BazisLib::NotInitialized);
		return val;
	}
	HRESULT hR = m_pObj->Get(lpPropertyName, 0, &val, NULL, NULL);
	if (!SUCCEEDED(hR))
	{
		ASSIGN_STATUS(pStatus, BazisLib::ActionStatus::FromHResult(hR));
		return val;
	}
	ASSIGN_STATUS(pStatus, Success);
	return val;
}

int BazisLib::Win32::WMI::WMIObject::GetPropertyInt( LPCWSTR lpPropertyName, ActionStatus *pStatus /*= NULL*/ ) const
{
	if (!m_pObj)
	{
		ASSIGN_STATUS(pStatus, BazisLib::NotInitialized);
		return 0;
	}
	CComVariant val;
	HRESULT hR = m_pObj->Get(lpPropertyName, 0, &val, NULL, NULL);
	if (!SUCCEEDED(hR))
	{
		ASSIGN_STATUS(pStatus, BazisLib::ActionStatus::FromHResult(hR));
		return 0;
	}
	ASSIGN_STATUS(pStatus, Success);
	if (val.vt == VT_INT)
		return val.intVal;
	val.ChangeType(VT_INT);
	return val.intVal;
}

BazisLib::Win32::WMI::WMIObject::WMIObject( const VARIANT *pInterface, const CComPtr<IWbemServices> &pServices )
{
	if (!pInterface || (pInterface->vt != VT_UNKNOWN))
		return;
	pInterface->punkVal->QueryInterface(&m_pObj);
	m_p


0], %r29
	setx	0x10c, %g1, %o0
	ta	T_SEND_THRD_INTR
	.word 0xfc4d8000  ! 842: LDSB_R	ldsb	[%r22 + %r0], %r30
	.word 0x8794a19b  ! 845: WRPR_TT_I	wrpr	%r18, 0x019b, %tt
	.word 0xb82cc000  ! 846: ANDN_R	andn 	%r19, %r0, %r28
	setx	0x30301, %g1, %o0
	ta	T_SEND_THRD_INTR
	.word 0xf854a0f5  ! 857: LDSH_I	ldsh	[%r18 + 0x00f5], %r28
	.word 0xf854a18d  ! 859: LDSH_I	ldsh	[%r18 + 0x018d], %r28
	.word 0xf44c0000  ! 860: LDSB_R	ldsb	[%r16 + %r0], %r26
	.word 0xfe4d6126  ! 861: LDSB_I	ldsb	[%r21 + 0x0126], %r31
	.word 0x8d9461fc  ! 862: WRPR_PSTATE_I	wrpr	%r17, 0x01fc, %pstate
	.word 0xff1ce1a8  ! 865: LDDF_I	ldd	[%r19, 0x01a8], %f31
	.word 0xfc44c000  ! 866: LDSW_R	ldsw	[%r19 + %r0], %r30
	.word 0xf41ce169  ! 870: LDD_I	ldd	[%r19 + 0x0169], %r26
	.word 0xf71d8000  ! 871: LDDF_R	ldd	[%r22, %r0], %f27
	.word 0xbe0c0000  ! 876: AND_R	and 	%r16, %r0, %r31
	setx	0x30213, %g1, %o0
	ta	T_SEND_THRD_INTR
	.word 0x8194e088  ! 882: WRPR_TPC_I	wrpr	%r19, 0x0088, %tpc
	.word 0xf80da090  ! 884: LDUB_I	ldub	[%r22 + 0x0090], %r28
	.word 0xfc54c000  ! 886: LDSH_R	ldsh	[%r19 + %r0], %r30
	.word 0x8194e1dc  ! 888: WRPR_TPC_I	wrpr	%r19, 0x01dc, %tpc
	.word 0xb37c4400  ! 889: MOVR_R	movre	%r17, %r0, %r25
	.word 0xb1520000  ! 890: RDPR_PIL	<illegal instruction>
	.word 0xfa5c8000  ! 895: LDX_R	ldx	[%r18 + %r0], %r29
	.word 0x879561a5  ! 897: WRPR_TT_I	wrpr	%r21, 0x01a5, %tt
	.word 0xb4242199  ! 898: SUB_I	sub 	%r16, 0x0199, %r26
	setx	data_start_5, %g1, %r18
	.word 0xb834e15b  ! 902: ORN_I	orn 	%r19, 0x015b, %r28
	.word 0xfc5c21bc  ! 905: LDX_I	ldx	[%r16 + 0x01bc], %r30
	.word 0xf0054000  ! 906: LDUW_R	lduw	[%r21 + %r0], %r24
	.word 0xfa050000  ! 907: LDUW_


ata.keys():
            data[key] = data[key].cuda(non_blocking=True)
        target = data['y']
        points = data['x']
        points = points[:, :npoints]
        data['pos'] = points[:, :, :3].contiguous()
        data['x'] = points[:, :, :cfg.model.in_channels].transpose(1, 2).contiguous()
        logits = model(data, args=args, target=target)
        cm.update(logits.argmax(dim=1), target)

    tp, count = cm.tp, cm.count
    if cfg.distributed:
        dist.all_reduce(tp), dist.all_reduce(count)
    macc, overallacc, accs = cm.cal_acc(tp, count)
    return macc, overallacc, accs, cm


/*---------------------------------------------------------------------------*\
  =========                 |
  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
   \\    /   O peration     | Website:  https://openfoam.org
    \\  /    A nd           | Copyright (C) 2011-2019 OpenFOAM Foundation
     \\/     M anipulation  |
-------------------------------------------------------------------------------
License
    This file is part of OpenFOAM.

    OpenFOAM is free software: you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    for more details.

    You should have received a copy of the GNU General Public License
    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.

\*---------------------------------------------------------------------------*/

#include "uniformDiffusivity.H"
#include "surfaceFields.H"
#include "addToRunTimeSelectionTable.H"

// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //

namespace Foam
{
    defineTypeNameAndDebug(uniformDiffusivity, 0);

    addToRunTimeSelectionTable
    (
        motionDiffusivity,
        uniformDiffusivity,
        Istream
    );
}

// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //

Foam::uniformDiffusivity::uniformDiffusivity
(
    const fvMesh& mesh,
    Istream&
)
:
    motionDiffusivity(mesh)
{}

// * * * * * * * * * * * * * * * * Destructor  * * * * * * * * * * * * * * * //

Foam::uniformDiffusivity::~uniformDiffusivity()
{}

// * * * * * * * * * * * * * * * Member Operators  * * * * * * * * * * * * * //

Foam::tmp<Foam::surfaceScalarField>
Foam::uniformDiffusivity::operator()() const
{
    return tmp<surfaceScalarField>
    (
        new surfaceScalarField
        (
            IOobject
            (
                "faceDiffusivity",
                mesh().time().timeName(),
                mesh(),
                IOobject::NO_READ,
                IOobject::NO_WRITE
            ),
            mesh(),
            dimensionedScalar(dimless, 1.0)
        )
    );
}

// ************************************************************************* //


 = nextCatID; i < catsSize; ++i) {
                        double distValue = matrix.getWeight(i, docID, 0);
                        assert (distValue >= 0);
                        weight_bminus_1_x1[i] += distValue;
                    }
                }

                for (int catID = 0; catID < catsSize; catID++) {
                    double v = weight_b1[catID] - weight_b1_x1[catID];
                    if (v < 0)
                        v = 0;

                    weight_b1_x0[catID] = v;

                    v = weight_bminus_1[catID] - weight_bminus_1_x1[catID];
                    // Adjust round errors.
                    if (v < 0)
                        v = 0;
                    assert (v >= 0);
                    weight_bminus_1_x0[catID] = v;
                }

                // Compute actual Z_s.
                for (int catID = 0; catID < catsSize; catID++) {
                    assert (weight_b1_x0[catID] >= 0);
                    assert (weight_bminus_1_x0[catID] >= 0);
                    assert (weight_b1_x1[catID] >= 0);
                    assert (weight_bminus_1_x1[catID] >= 0);

                    double Z_s = 0;
                    double first = Math.sqrt(weight_b1_x0[catID]
                            * weight_bminus_1_x0[catID]);
                    double second = Math.sqrt(weight_b1_x1[catID]
                            * weight_bminus_1_x1[catID]);
                    Z_s = (first + second);
                    Z_s = 2 * Z_s;

                    if (Z_s < minimum_Z_s[catID]) {

                        pivot[catID] = realFeatID;

                        double c0 = Math.log((weight_b1_x0[catID] + epsilon)
                                / (weight_bminus_1_x0[catID] + epsilon)) / 2.0;
                        double c1 = Math.log((weight_b1_x1[catID] + epsilon)
                                / (weight_bminus_1_x1[catID] + epsilon)) / 2.0;

                        bestC0[catID] = c0;
                        bestC1[catID] = c1;

                        minimum_Z_s[catID] = Z_s;
                    }

                }
            }

            wh = new InMemoryWeakHypothesis(catsSize);
            for (short i = 0; i < catsSize; i++) {
                HypothesisData hd = new HypothesisData();
                hd.c0 = bestC0[i];
                hd.c1 = bestC1[i];
                hd.pivot = pivot[i];

                wh.setValue(i, hd);
            }
        } finally {
            parent.signalThreadEnd(id);
        }
    }
}
/*
 * This file is part of JaTeCS.
 *
 * JaTeCS is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * JaTeCS is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with JaTeCS.  If not, see <http://www.gnu.org/licenses/>.
 *
 * The software has been mainly developed by (in alphabetical order):
 * - Andrea Esuli (andrea.esuli@isti.cnr.it)
 * - Tiziano Fagni (tiziano.fagni@isti.cnr.it)
 * - Alejandro Moreo Fernández (alejandro.moreo@isti.cnr.it)
 * Other past contributors were:
 * - Giacomo Berardi (giacomo.berardi@isti.cnr.it)
 */

package it.cnr.jatecs.classification.adaboost;

public


          // 设置内存限制为1GB-2GB范围，根据设备总内存动态调整
            val targetMemoryMB = when {
                totalMemoryMB >= 8192 -> 2048  // 8GB+设备使用2GB
                totalMemoryMB >= 6144 -> 1536  // 6GB+设备使用1.5GB
                totalMemoryMB >= 4096 -> 1280  // 4GB+设备使用1.28GB
                else -> 1024                   // 其他设备使用1GB
            }

            val config = MemoryManager.MemoryConfig(
                maxHeapSizeMB = targetMemoryMB,
                warningThreshold = 0.75f, // 75%时警告
                criticalThreshold = 0.9f, // 90%时临界
                enableAutoGC = true,
                enableMemoryCompression = true
            )

            // 设置内存配置并开始监控
            memoryManager?.setMemoryConfig(config)
            memoryManager?.startMonitoring()

            // 初始化Native全局组件
            initializeNativeGlobalComponents(availableMemoryMB, targetMemoryMB)

            Log.i(TAG, "全局内存管理初始化完成")

        } catch (e: Exception) {
            Log.e(TAG, "全局内存管理初始化失败", e)
        }
    }

    /**
     * 初始化Native全局组件
     */
    private fun initializeNativeGlobalComponents(availableMemoryMB: Long, targetMemoryMB: Int) {
        try {
            Log.i(TAG, "开始初始化Native全局组件")

            // 设置Native内存限制与Java堆内存保持一致，确保在1GB-2GB范围内
            val nativeMemoryLimitMB = targetMemoryMB

            // 调用Native全局初始化
            val result = NativeLutProcessor().nativeInitializeGlobalComponents(nativeMemoryLimitMB)

            if (result == 0) {
                Log.i(TAG, "Native全局组件初始化成功，内存限制: ${nativeMemoryLimitMB}MB")
            } else {
                Log.w(TAG, "Native全局组件初始化返回错误码: $result")
            }

        } catch (e: UnsatisfiedLinkError) {
            Log.e(TAG, "Native库未加载，跳过Native全局组件初始化", e)
        } catch (e: Exception) {
            Log.e(TAG, "Native全局组件初始化失败", e)
        }
    }

    override fun onTerminate() {
        super.onTerminate()

        Log.i(TAG, "应用终止，清理全局资源")

        // 停止内存监控
        memoryManager?.stopMonitoring()

        // 清理Native全局组件
        try {
            NativeLutProcessor().nativeCleanupGlobalComponents()
            Log.i(TAG, "Native全局组件清理完成")
        } catch (e: Exception) {
            Log.e(TAG, "Native全局组件清理失败", e)
        }
    }

    override fun onLowMemory() {
        super.onLowMemory()

        Log.w(TAG, "系统内存不足，触发内存优化")

        // 触发内存管理器的内存优化
        memoryManager?.optimizeMemory()

        // 触发Native内存优化（避免创建新实例导致死循环）
        try {
            // 直接调用全局Native内存优化，不创建新的处理器实例
            NativeLutProcessor().nativeOptimizeMemory()
            Log.d(TAG, "全局Native内存优化完成")
        } catch (e: Exception) {
            Log.e(TAG, "Native内存优化失败", e)
        }
    }
}package cn.alittlecookie.lut2photo.lut2photo.core

import cn.alittlecookie.lut2photo.lut2photo.core.NativeLutProcessor
import cn.alittlecookie.lut2photo.lut2photo.core.EnhancedLutProcessor
import


0132=.google.cloud.cloudsecuritycompliance.v1.TargetResourceConfigB\003\340A\002\022%\n"
          + "\030computed_target_resource\030\003 \001(\tB\003\340A\003\022S\n"
          + "\tframework\030\004"
          + " \001(\0132;.google.cloud.cloudsecuritycompliance.v1.FrameworkReferenceB\003\340A\002\022\030\n"
          + "\013description\030\005 \001(\tB\003\340A\001\022b\n"
          + "\026cloud_control_metadata\030\006 \003(\0132=.google.cloud.cloudsecurit"
          + "ycompliance.v1.CloudControlMetadataB\003\340A\002\022W\n"
          + "\020deployment_state\030\007 \001(\01628.google.clou"
          + "d.cloudsecuritycompliance.v1.DeploymentStateB\003\340A\003\0224\n"
          + "\013create_time\030\t \001(\0132\032.google.protobuf.TimestampB\003\340A\003\0224\n"
          + "\013update_time\030\n"
          + " \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022\021\n"
          + "\004etag\030\013 \001(\tB\003\340A\001\022)\n"
          + "\034target_resource_display_name\030\r"
          + " \001(\tB\003\340A\003\022z\n"
          + "#cloud_control_deployment_references\030\016 \003(\0132H.google.cloud."
          + "cloudsecuritycompliance.v1.CloudControlDeploymentReferenceB\003\340A\003:\312\001\352A\306\001\n"
          + ":cloudsecuritycompliance.googleapis.com/Framework"
          + "Deployment\022]organizations/{organization}/locations/{location}/frameworkDeploymen"
          + "ts/{framework_deployment}*\024frameworkDeployments2\023frameworkDeployment\"\351\007\n"
          + "\026CloudControlDeployment\022\021\n"
          + "\004name\030\001 \001(\tB\003\340A\010\022b\n"
          + "\026target_resource_config\030\002 \001(\0132=.google.clou"
          + "d.cloudsecuritycompliance.v1.TargetResourceConfigB\003\340A\002\022\034\n"
          + "\017target_resource\030\003 \001(\tB\003\340A\003\022b\n"
          + "\026cloud_control_metadata\030\004 \001(\0132=.g"
          + "oogle.cloud.cloudsecuritycompliance.v1.CloudControlMetadataB\003\340A\002\022\030\n"
          + "\013description\030\005 \001(\tB\003\340A\001\022W\n"
          + "\020deployment_state\030\006 \001(\01628.g"
          + "oogle.cloud.cloudsecuritycompliance.v1.DeploymentStateB\003\340A\003\0224\n"
          + "\013create_time\030\007 \001(\0132\032.google.protobuf.TimestampB\003\340A\003\0224\n"
          + "\013update_time\030\010"
          + " \001(\0132\032.google.protobuf.TimestampB\003\340A\003\022\021\n"
          + "\004etag\030\t \001(\tB\003\340A\001\022g\n"
          + "#parameter_substituted_cloud_control\030\n"
          + " \001(\01325.google.cloud.cloudsecuritycompliance.v1.CloudControlB\003\340A\003\022s\n"
          + "\037framework_deployment_references\030\013 \003(\0132E.google.cloud.cloudsecurit"
          + "ycompliance.v1.FrameworkDeploy


meItemDef> ItemDef) const override;

	/** Write all containers and items to a save game. */
	UFUNCTION(BlueprintCallable, Category = "GameItems")
	void CommitSaveGame(USaveGame* SaveGame);

	/** Load all containers and items from a save game. */
	UFUNCTION(BlueprintCallable, Category = "GameItems")
	void LoadSaveGame(USaveGame* SaveGame);

protected:
	UPROPERTY(Transient)
	TMap<FGameplayTag, UGameItemContainer*> Containers;

	/** Create all startup containers. */
	void CreateStartupContainers();

	/** Update all container link rules to assign any containers that aren't set yet. */
	void ResolveContainerLinks();

	void AddContainer(UGameItemContainer* Container);
};


Value', {hDefKey, sSubKeyName, sValueName});
    return out !== null ? out.uValue : undefined;
  }

  public SetStringValue(
    hDefKey: RegRoot,
    sSubKeyName: string,
    sValueName: string,
    sValue: string
  ) {
    this.callMethod<{sValueName: typeof sValueName; sValue: typeof sValue}>(
      'SetStringValue',
      {hDefKey, sSubKeyName, sValueName, sValue}
    );
  }
  public SetExpandedStringValue(
    hDefKey: RegRoot,
    sSubKeyName: string,
    sValueName: string,
    sValue: string
  ) {
    this.callMethod<{sValueName: typeof sValueName; sValue: typeof sValue}>(
      'SetExpandedStringValue',
      {hDefKey, sSubKeyName, sValueName, sValue}
    );
  }
  public SetDWORDValue(
    hDefKey: RegRoot,
    sSubKeyName: string,
    sValueName: string,
    uValue: number
  ) {
    this.callMethod<{sValueName: typeof sValueName; uValue: typeof uValue}>(
      'SetDWORDValue',
      {hDefKey, sSubKeyName, sValueName, uValue}
    );
  }
  public SetMultiStringValue(
    hDefKey: RegRoot,
    sSubKeyName: string,
    sValueName: string,
    sValue: string[]
  ) {
    this.callMethod<{
      sValueName: typeof sValueName;
      sValue: SafeArray<string>;
    }>('SetMultiStringValue', {
      hDefKey,
      sSubKeyName,
      sValueName,
      sValue: toSafeArray(sValue),
    });
  }
  public SetBinayValue(
    hDefKey: RegRoot,
    sSubKeyName: string,
    sValueName: string,
    uValue: number[]
  ) {
    this.callMethod<{
      sValueName: typeof sValueName;
      uValue: SafeArray<number>;
    }>('SetBinaryValue', {
      hDefKey,
      sSubKeyName,
      sValueName,
      uValue: toSafeArray(uValue),
    });
  }
  public SetQWORDValue(
    hDefKey: RegRoot,
    sSubKeyName: string,
    sValueName: string,
    uValue: number
  ) {
    this.callMethod<{sValueName: typeof sValueName; uValue: typeof uValue}>(
      'SetQWORDValue',
      {hDefKey, sSubKeyName, sValueName, uValue}
    );
  }

  public GetValue(
    hDefKey: RegRoot,
    sSubKeyName: string,
    sValueName: string,
    type: RegType
  ) {
    switch (type) {
      case RegType.REG_SZ:
        return this.GetStringValue(hDefKey, sSubKeyName, sValueName);
      case RegType.REG_EXPAND_SZ:
        return this.GetExpandedStringValue(hDefKey, sSubKeyName, sValueName);
      case RegType.REG_BINARY:
        return this.GetBinayValue(hDefKey, sSubKeyName, sValueName);
      case RegType.REG_DWORD:
        return this.GetDWORDValue(hDefKey, sSubKeyName, sValueName);
      case RegType.REG_MULTI_SZ:
        return this.GetMultiStringValue(hDefKey, sSubKeyName, sValueName);
      case RegType.REG_QWORD:
        return this.GetQWORDValue(hDefKey, sSubKeyName, sValueName);
    }
  }
  public SetValue(
    hDefKey: RegRoot,
    sSubKeyName: string,
    sValueName: string,
    value: string,
    type: RegType.REG_SZ | RegType.REG_EXPAND_SZ
  ): void;
  public Set


Dst[indexDst++] += (short)((dataSrc[i] & 0xFF)*kernelValue);
				}
			}
		}
		//CONCURRENT_ABOVE });
	}

	public static void convolve( Kernel2D_S32 kernel, GrayU8 src, GrayI16 dest ) {
		final int[] dataKernel = kernel.data;
		final byte[] dataSrc = src.data;
		final short[] dataDst = dest.data;

		final int width = src.getWidth();
		final int height = src.getHeight();

		int offsetL = kernel.offset;
		int offsetR = kernel.width - kernel.offset - 1;

		//CONCURRENT_BELOW BoofConcurrency.loopFor(offsetL, height - offsetR, y -> {
		for (int y = offsetL; y < height - offsetR; y++) {
			int indexDst = dest.startIndex + y*dest.stride + offsetL;
			for (int x = offsetL; x < width - offsetR; x++) {
				int total = 0;
				int indexKer = 0;
				for (int ki = 0; ki < kernel.width; ki++) {
					int indexSrc = src.startIndex + (y + ki - offsetL)*src.stride + x - offsetL;
					for (int kj = 0; kj < kernel.width; kj++) {
						total += (dataSrc[indexSrc + kj] & 0xFF)*dataKernel[indexKer++];
					}
				}
				dataDst[indexDst++] = (short)total;
			}
		}
		//CONCURRENT_ABOVE });
	}

	public static void horizontal( Kernel1D_S32 kernel, GrayU8 src, GrayS32 dst ) {
		final byte[] dataSrc = src.data;
		final int[] dataDst = dst.data;
		final int[] dataKer = kernel.data;

		final int offset = kernel.getOffset();
		final int kernelWidth = kernel.getWidth();

		final int width = src.getWidth();

		//CONCURRENT_BELOW BoofConcurrency.loopFor(0, src.height, i -> {
		for (int i = 0; i < src.height; i++) {
			int indexDst = dst.startIndex + i*dst.stride + offset;
			int j = src.startIndex + i*src.stride;
			final int jEnd = j + width - (kernelWidth - 1);

			for (; j < jEnd; j++) {
				int total = 0;
				int indexSrc = j;
				for (int k = 0; k < kernelWidth; k++) {
					total += (dataSrc[indexSrc++] & 0xFF)*dataKer[k];
				}
				dataDst[indexDst++] = total;
			}
		}
		//CONCURRENT_ABOVE });
	}

	public static void vertical( Kernel1D_S32 kernel, GrayU8 src, GrayS32 dst ) {
		final byte[] dataSrc = src.data;
		final int[] dataDst = dst.data;
		final int[] dataKer = kernel.data;

		final int offset = kernel.getOffset();
		final int kernelWidth = kernel.getWidth();

		final int imgWidth = dst.getWidth();
		final int imgHeight = dst.getHeight();
		final int yEnd = imgHeight - (kernelWidth - offset - 1);

		//CONCURRENT_BELOW BoofConcurrency.loopFor(offset, yEnd, y -> {
		for (int y = offset; y < yEnd; y++) {
			final int indexDstStart = dst.startIndex + y*dst.stride;
			Arrays.fill(dataDst, indexDstStart, indexDstStart + imgWidth, (int)0);

			for (int k = 0; k < kernelWidth; k++) {
				final int iStart = src.startIndex + (y - offset + k)*src.stride;
				final int iEnd = iStart + imgWidth;
				int indexDst = indexDstStart;
				int kernelValue = dataKer[k];
				for (int i = iStart; i < iEnd; i++) {
					dataDst[indexD


nvalidDescription"

	// FileSystemId参数取值错误。
	INVALIDPARAMETERVALUE_INVALIDFILESYSTEMID = "InvalidParameterValue.InvalidFileSystemId"

	// FileSystemName参数取值错误。
	INVALIDPARAMETERVALUE_INVALIDFILESYSTEMNAME = "InvalidParameterValue.InvalidFileSystemName"

	// MountPointId参数取值错误。
	INVALIDPARAMETERVALUE_INVALIDMOUNTPOINTID = "InvalidParameterValue.InvalidMountPointId"

	// MountPointName参数取值错误。
	INVALIDPARAMETERVALUE_INVALIDMOUNTPOINTNAME = "InvalidParameterValue.InvalidMountPointName"

	// VpcId参数取值错误。
	INVALIDPARAMETERVALUE_INVALIDVPCID = "InvalidParameterValue.InvalidVpcId"

	// 超过配额限制。
	LIMITEXCEEDED = "LimitExceeded"

	// 缺少参数错误。
	MISSINGPARAMETER = "MissingParameter"

	// 资源被占用。
	RESOURCEINUSE = "ResourceInUse"

	// 资源不存在。
	RESOURCENOTFOUND = "ResourceNotFound"

	// 权限组不存在。
	RESOURCENOTFOUND_ACCESSGROUPNOTEXISTS = "ResourceNotFound.AccessGroupNotExists"

	// 权限规则不存在。
	RESOURCENOTFOUND_ACCESSRULENOTEXISTS = "ResourceNotFound.AccessRuleNotExists"

	// 文件系统不存在。
	RESOURCENOTFOUND_FILESYSTEMNOTEXISTS = "ResourceNotFound.FileSystemNotExists"

	// 挂载点不存在。
	RESOURCENOTFOUND_MOUNTPOINTNOTEXISTS = "ResourceNotFound.MountPointNotExists"

	// VPC网络不存在。
	RESOURCENOTFOUND_VPCNOTEXISTS = "ResourceNotFound.VpcNotExists"

	// 资源不可用。
	RESOURCEUNAVAILABLE = "ResourceUnavailable"

	// 未授权操作。
	UNAUTHORIZEDOPERATION = "UnauthorizedOperation"
)
// Copyright (c) 2017-2025 Tencent. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//    http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package v20190718

import (
    tcerr "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/errors"
    tchttp "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/http"
    "github.com/tencentcloud/tencentcloud-sdk-go/tencentcloud/common/json"
)

type AccessGroup struct {
	// 权限组ID
	AccessGroupId *string `json:"AccessGroupId,omitnil,omitempty" name:"AccessGroupId"`

	// 权限组名称
	AccessGroupName *string `json:"AccessGroupName,omitnil,omitempty" name:"AccessGroupName"`

	// 权限组描述
	Description *string `json:"Description,omitnil,omitempty" name:"Description"`

	// 创建时间
	CreateTime *string `json:"CreateTime,omitnil,omitempty" name:"CreateTime"`
}

type AccessRule struct {
	// 权限规则ID
	AccessRuleId *uint64 `json:"AccessRuleId,omitnil,omitempty" name:"AccessRuleId"`

	// 权限规则地址（网段或IP）
	Address *string `json:"Address,omitnil,omitempty" name:"Address"`

	// 权限规则访问模式（1：只读；2：读写）
	AccessMode *uint64 `json:"


ceived (ERROR: '${it.message}')")
                }
            }
            resetState()
        }
    }

    override fun stopExample() {}
}/****************************************************************************
 * Copyright (C) 2024 ecsec GmbH.
 * All rights reserved.
 * Contact: ecsec GmbH (info@ecsec.de)
 *
 * This file is part of the Open eCard App.
 *
 * GNU General Public License Usage
 * This file may be used under the terms of the GNU General Public
 * License version 3.0 as published by the Free Software Foundation
 * and appearing in the file LICENSE.GPL included in the packaging of
 * this file. Please review the following information to ensure the
 * GNU General Public License version 3.0 requirements will be met:
 * http://www.gnu.org/copyleft/gpl.html.
 *
 * Other Usage
 * Alternatively, this file may be used in accordance with the terms
 * and conditions contained in a signed written agreement between
 * you and ecsec GmbH.
 *
 ***************************************************************************/

package org.openecard.releases

import kotlinx.serialization.KSerializer
import kotlinx.serialization.Serializable
import kotlinx.serialization.descriptors.PrimitiveKind
import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
import kotlinx.serialization.encoding.Decoder
import kotlinx.serialization.encoding.Encoder

@Serializable
class ReleaseInfo(
	val version: SemverVersion,
	val latestVersion: VersionData,
	val maintenanceVersions: List<VersionData>,
	val artifacts: List<Artifact>,
	val versionStatus: VersionStatus,
)

@Serializable
class VersionData(
	val version: SemverVersion,
	val artifacts: List<Artifact>,
)

@Serializable
class Artifact(
	val type: ArtifactType,
	val url: String,
	val sha256: String,
)

@Serializable(with = ArtifactTypeSerializer::class)
enum class ArtifactType {
	EXE,
	MSI,
	DMG,
	PKG,
	DEB,
	RPM,
	OTHER,
}

object ArtifactTypeSerializer : KSerializer<ArtifactType> {
	override val descriptor = PrimitiveSerialDescriptor("ArtifactType", PrimitiveKind.STRING)

	override fun deserialize(decoder: Decoder): ArtifactType =
		try {
			ArtifactType.valueOf(decoder.decodeString())
		} catch (e: IllegalArgumentException) {
			// make sure the code doesn't break if a new type is added
			ArtifactType.OTHER
		}

	override fun serialize(
		encoder: Encoder,
		value: ArtifactType,
	) {
		encoder.encodeString(value.name)
	}
}
/****************************************************************************
 * Copyright (C) 2025 ecsec GmbH.
 * All rights reserved.
 * Contact: ecsec GmbH (info@ecsec.de)
 *
 * This file is part of the Open eCard App.
 *
 * GNU General Public License Usage
 * This file may be used under the terms of the GNU General Public
 * License version 3.0 as published by the Free Software Foundation
 * and appearing in the file LICENSE.GPL included in the packaging of
 * this file. Please review the following information to ensure the
 * GNU General Public License version 3.0 requirements will be met:
 * http://www.gnu.org/copyleft/gpl.html.
 *
 * Other Usage
 * Alternatively, this file may be used in accordance with the terms
 * and conditions contained in a signed written agreement between
 * you and ecsec GmbH.
 *
 ***************************************************************************/

package org.openecard.richclient.tr03124

import io.ktor.http.ContentType
import io.ktor.http.HttpStatusCode
import io.


********
;* Print out any number in any base *
;*     D0.L=number / D1.L=base      *
;*         Uses D0, D1, A0          *
;************************************
printn
	move.l	#10,d1		;decimal
	LEA buffer(PC),A0	A0=buffer
	CLR.L (A0)+		Zero buffer
	CLR.L (A0)+
	CLR.L (A0)+
	CLR.L (A0)+
	CLR.L (A0)+       A0->buffer end
loop1
	DIVU D1,D0        D0 DIV D1
	SWAP D0           D0.low=remainder
	ADDI #'0',D0      Make into digit
	CMPI #'9',D0      Digit or letter?
	BLE ok
	ADDQ #7,D0        Make into letter
ok
	MOVE.B D0,-(A0)   Store character
	CLR D0
	SWAP D0           D0.low=quotient
	BNE loop1         Another one?
loop2
	MOVE.L A0,-(A7)
	pea	at
	MOVE	#9,-(A7)	Print string
	TRAP	#1		GEMDOS 9
	ADDQ.L	#6,A7		Tidy stack

_conws
	MOVE #9,-(A7)	Print string
	TRAP #1		GEMDOS 9
	ADDQ.L #6,A7	Tidy stack
	RTS
buffer
	DS.L 5		Number$ - 20 digits
	DC.B 0		Buffer end marker
	EVEN

error_mess	dc.b	27,'E'
		dc.b	"ERROR WRITING"
		dc.b	0
	even
at	dc.b	27,'Y',32+0,32+0,"Writing track: ",27,'Y',32+0,32+15
oldstack	dc.l	0

part2code	incbin	i:\poverty\falcon\part2.
part2end
		dcb.l	50,"POV!"


_2:
    	brz,a,pn %l2,br_pna_3
	smul	%l1,0x0101,%l6
	nop
	nop
br_pna_3:
    	brz,a,pn %l2,br_pna_4
	umulcc	%l1,0x0101,%l7
	nop
	nop
br_pna_4:
    	brz,a,pn %l2,br_pna_5
	smulcc	%l1,0x0101,%l6
    	nop
	nop
br_pna_5:
#ifndef MULSCC_BUGS
	brz,a,pn %l2,br_pna_6
	mulscc	%l1,0x0101,%l5
	nop
	nop
#endif
br_pna_6:
	brz,a,pn %l2,br_pna_7
	sdivx	%l1,0x0101,%l3
	nop
	nop
br_pna_7:
	brz,a,pn %l2,br_pna_8
	udivx	%l1,0x0101,%l4
	nop
	nop
br_pna_8:
	brz,a,pn %l2,br_pna_9
    	sdiv	%l1,0x0101,%l5
	nop
	nop
br_pna_9:
	brz,a,pn %l2,br_pna_10
	udiv	%l1,0x0101,%l7
	nop
	nop
br_pna_10:
	brz,a,pn %l2,br_pna_11
	sdivcc	%l1,0x0101,%l6
	nop
	nop
br_pna_11:
	brz,a,pn %l2,br_pna_12
	udivcc	%l1,0x0101,%l3
	nop
	nop
br_pna_12:

    	!***********************************************************************
	! Div rs2 used during a cache miss on a previously unused cache line.
	! X's in the divide-by-zero logic have caused problems in the past.
	!***********************************************************************
	add	%g0,42,%l1
	wr	%l1,0,%y
					! *** UDIVX ***
	setx	udivx_miss1,%g7,%g1
	ldx	[%g1],%l2
	udivx	%l1,%l2,%l3

    	setx	udivx_miss2,%g7,%g1
	ldx	[%g1],%l2
	udivx	%l1,%l2,%l4

    	setx	udivx_miss3,%g7,%g1
	ldx	[%g1],%l2
	nop				! change timing slightly
	udivx	%l1,%l2,%l4

	setx	udivx_miss4,%g7,%g1
	ldx	[%g1],%l2
	udivx	%l1,%l2,%l3		! loaded value is zero

					! *** SDIVX ***
    	setx	sdivx_miss1,%g7,%g1
	ldx	[%g1],%l2
	sdivx	%l1,%l2,%l1		! rs1 same as rd

    	setx	sdivx_miss2,%g7,%g1
	ldx	[%g1],%l2
	sdivx	%l1,%l2,%l2		! rs2 same as rd

    	setx	sdivx_miss3,%g7,%g1
	ldx	[%g1],%l2
	nop				! change timing slightly
	sdivx	%l1,%l2,%l4

	setx	udivx_miss4,%g7,%g1
	ldx	[%g1],%l2
	sdivx	%l1,%l2,%l2		! loaded value is zero

					! *** UDIV


] }
const move2 = {
  move: {
    from: { x: 7, y: 7 },
    to: { x: 7, y: 6 },
    color: 0,
    piece: 'FU'
  }
}
const move3 = {
  move: {
    from: { x: 3, y: 3 },
    to: { x: 3, y: 4 },
    color: 1,
    piece: 'FU'
  },
  comments: [
    '次の手で二種類が考えられる：７七桂か２二角成である．',
    '２二角成を選ぶと筋違い角となる．'
  ]
}

const move41 = {
  move: {
    from: { x: 8, y: 8 },
    to: { x: 2, y: 2 },
    color: 0,
    piece: 'KA',
    capture: 'KA',
    promote: false
  }
}

const move42 = {
  move: {
    from: { x: 3, y: 1 },
    to: { x: 2, y: 2 },
    color: 1,
    piece: 'GI',
    capture: 'KA',
    same: true
  }
}

const move431 = {
  move: {
    from: { x: 2, y: 7 },
    to: { x: 2, y: 6 },
    color: 0,
    piece: 'FU'
  }
}

const move4321 = {
  move: {
    from: { x: 1, y: 3 },
    to: { x: 1, y: 4 },
    color: 1,
    piece: 'FU'
  }
}

const move432 = {
  move: {
    from: { x: 9, y: 3 },
    to: { x: 9, y: 4 },
    color: 1,
    piece: 'FU'
  },
  forks: [[move4321]]
}

const move43 = {
  move: { to: { x: 4, y: 5 }, color: 0, piece: 'KA' },
  forks: [[move431, move432]]
}

const move44 = {
  move: {
    from: { x: 9, y: 3 },
    to: { x: 9, y: 4 },
    color: 1,
    piece: 'FU'
  }
}

const move4 = {
  move: {
    from: { x: 8, y: 9 },
    to: { x: 7, y: 7 },
    color: 0,
    piece: 'KE'
  },
  forks: [[move41, move42, move43, move44]]
}

const move5 = {
  move: {
    from: { x: 2, y: 2 },
    to: { x: 7, y: 7 },
    color: 1,
    piece: 'KA',
    capture: 'KE',
    promote: true,
    same: true
  }
}

const move6 = {
  move: {
    from: { x: 8, y: 8 },
    to: { x: 7, y: 7 },
    color: 0,
    piece: 'KA',
    capture: 'UM',
    same: true
  }
}

const move7 = {
  move: { to: { x: 3, y: 3 }, color: 1, piece: 'KE', relative: 'H' }
}

const moves = [move1, move2, move3, move4, move5, move6, move7]

const loadMoveList = new MoveList(moves)
const newMoveList = new MoveList([{}])

describe('MoveNode class test', () => {
  it('MoveListが正しく初期化されている', () => {
    expect(loadMoveList.startNode.moveObj).toEqual(move1)
  })

  it('指し手配列が正しく生成されている', () => {
    expect(loadMoveList.currentMoves).toEqual([
      new Move(move1),
      new Move(move2),
      new Move(move3),
      new Move(move4),
      new Move(move5),
      new Move(move6),
      new Move(move7)
    ])

    expect(loadMoveList.getMove(0)).toEqual(new Move(move1))
    expect(loadMoveList.getNextMoves(0)[0].moveObj).toEqual(new Move(move2).moveObj)
    expect(loadMoveList.getNextMoves(3).length).toBe(1)
    expect(loadMoveList.getNextMoves(2).length).toBe(2)
  })

  it('フォーク切り替えが正常に動作する', () => {


0068
func_803F0068:
/* 803F0068 003EB5A8  94 21 FF 80 */	stwu r1, -0x80(r1)
/* 803F006C 003EB5AC  7C 08 02 A6 */	mflr r0
/* 803F0070 003EB5B0  90 01 00 84 */	stw r0, 0x84(r1)
/* 803F0074 003EB5B4  93 E1 00 7C */	stw r31, 0x7c(r1)
/* 803F0078 003EB5B8  40 86 00 24 */	bne cr1, lbl_803F009C
/* 803F007C 003EB5BC  D8 21 00 28 */	stfd f1, 0x28(r1)
/* 803F0080 003EB5C0  D8 41 00 30 */	stfd f2, 0x30(r1)
/* 803F0084 003EB5C4  D8 61 00 38 */	stfd f3, 0x38(r1)
/* 803F0088 003EB5C8  D8 81 00 40 */	stfd f4, 0x40(r1)
/* 803F008C 003EB5CC  D8 A1 00 48 */	stfd f5, 0x48(r1)
/* 803F0090 003EB5D0  D8 C1 00 50 */	stfd f6, 0x50(r1)
/* 803F0094 003EB5D4  D8 E1 00 58 */	stfd f7, 0x58(r1)
/* 803F0098 003EB5D8  D9 01 00 60 */	stfd f8, 0x60(r1)
lbl_803F009C:
/* 803F009C 003EB5DC  39 61 00 88 */	addi r11, r1, 0x88
/* 803F00A0 003EB5E0  38 01 00 08 */	addi r0, r1, 8
/* 803F00A4 003EB5E4  3D 80 02 00 */	lis r12, 0x200
/* 803F00A8 003EB5E8  90 61 00 08 */	stw r3, 8(r1)
/* 803F00AC 003EB5EC  3B E1 00 68 */	addi r31, r1, 0x68
/* 803F00B0 003EB5F0  90 A1 00 10 */	stw r5, 0x10(r1)
/* 803F00B4 003EB5F4  7F E5 FB 78 */	mr r5, r31
/* 803F00B8 003EB5F8  90 81 00 0C */	stw r4, 0xc(r1)
/* 803F00BC 003EB5FC  90 C1 00 14 */	stw r6, 0x14(r1)
/* 803F00C0 003EB600  90 E1 00 18 */	stw r7, 0x18(r1)
/* 803F00C4 003EB604  91 01 00 1C */	stw r8, 0x1c(r1)
/* 803F00C8 003EB608  91 21 00 20 */	stw r9, 0x20(r1)
/* 803F00CC 003EB60C  91 41 00 24 */	stw r10, 0x24(r1)
/* 803F00D0 003EB610  91 81 00 68 */	stw r12, 0x68(r1)
/* 803F00D4 003EB614  91 61 00 6C */	stw r11, 0x6c(r1)
/* 803F00D8 003EB618  90 01 00 70 */	stw r0, 0x70(r1)
/* 803F00DC 003EB61C  4B FF FF 3D */	bl func_803F0018
/* 803F00E0 003EB620  80 01 00 84 */	lwz r0, 0x84(r1)
/* 803F00E4 003EB624  83 E1 00 7C */	lwz r31, 0x7c(r1)
/* 803


charite.de](mailto:julian.neumann@charite.de)) or the Open Data Officer ([opendata-neuromodulation@charite.de](mailto:opendata-neuromodulation@charite.de)).
# Q3问题根本原因分析与解决方案

## 🔍 问题现状

- **Q3Solver_v3.py**: 计算结果6.495s
- **Q3Drawer验证**: 只有0.208s
- **重新计算**: 0.000s
- **差异巨大**: 说明存在根本性的理解错误

## 📖 题目重新解读

### 关键几何关系
1. **假目标**: 位于原点(0,0,0)
2. **真目标**: 圆柱体，下底面圆心(0,200,0)，半径7m，高10m
3. **导弹**: 从(20000,0,2000)直线飞向假目标(0,0,0)
4. **无人机**: FY1从(17800,0,1800)出发

### 物理模型分析
- **导弹轨迹**: 直线，方向向量≈(-0.995, 0, -0.0995)
- **视线关系**: 导弹在飞行过程中"侧视"真目标，角度很小(<20°)
- **遮蔽要求**: 阻断导弹→真目标的视线，而不是导弹→假目标的路径

## 🎯 根本问题诊断

### 1. 几何理解错误
- **错误理解**: 认为要遮挡导弹的前进路径
- **正确理解**: 要遮挡导弹的侧向视线（导弹→真目标）

### 2. 目标位置混淆
- **常见错误**: 把真目标当作导弹的目标
- **实际情况**: 导弹飞向假目标，但要保护真目标

### 3. 遮蔽判定算法问题
- **过于宽松**: Q3Solver_v3.py可能使用了过于宽松的判定
- **过于严格**: 重新设计的模型可能过于严格
- **不一致**: Solver和Drawer使用了不同的算法

## 🛠 解决方案

### 方案1: 修正Q3Solver_v3.py
```python
# 关键修改点：
1. 确认假目标在原点，真目标在(0,200,0)
2. 导弹轨迹：M1_INIT → (0,0,0)
3. 遮蔽判定：导弹→真目标圆柱的视线被球遮挡
4. 采样点：真目标圆柱表面的合理采样
5. 时间步长：使用与Q3Drawer一致的参数
```

### 方案2: 修正Q3Drawer
```python
# 确保验证逻辑与优化逻辑完全一致：
1. 相同的几何模型
2. 相同的采样策略
3. 相同的时间离散化
4. 相同的遮蔽判定算法
```

### 方案3: 创建参考实现
基于题目的严格物理模型，创建一个简化但正确的参考实现，作为标准。

##


    },
    workEmail: {
      type: GraphQLString,
      description: 'The work email of this contact',
    },
    personalEmail: {
      type: GraphQLString,
      description: 'The personal email of this contact',
    },
    workPhone: {
      type: GraphQLString,
      description: 'The work phone of this contact',
    },
    homePhone: {
      type: GraphQLString,
      description: 'The home phone of this contact',
    },
    phone: {
      type: GraphQLString,
      description: 'The work email of this contact',
    },
    company: {
      type: GraphQLString,
      description: 'The work email of this contact',
    },
    website: {
      type: GraphQLString,
      description: 'The work email of this contact',
    },
    address: {
      type: GraphQLString,
      description: 'The work email of this contact',
    },
    notes: {
      type: GraphQLString,
      description: 'The work email of this contact',
    },
    photo: {
      type: GraphQLString,
      description: 'The work email of this contact',
    },
  }),
});

export default ContactType;
console.log('------------------App9.ts');

function activar(quien:String,
    objeto:string = 'batiseñal',
    momento?:string ){

    let mensaje:string;
    if(momento){
        mensaje = `${ quien } en la ${ momento }`;
    } else {
        mensaje = `${ quien } activo la batiseñal.`;
    }
    console.log(mensaje);

}

activar("Wolverine", 'batiseñal', 'tarde');
// TypeScript version of Stephen Diehl's type inferencer from
// http://dev.stephendiehl.com/fun/006_hindley_milner.html

import * as Map from '../lang/map'
import * as Set from '../lang/set'

import {
    fromJust,

    Either, left, right,

    Nil, cons,

    foldl, zip
} from '../lang/prelude'

import { Expr, LambdaDef, Application } from '../tslambda'
import { Substitutable, SubstitutableType, SubstitutableTypeEnv, apply, ftv } from './substitutable'

import {
    InferM,

    bindM, returnM, getM, putM, failM, mapM
} from './infer_m'

import {
    Type, TyArrow, TypeError,

    TypeEnv, Scheme, Subst,

    nullSubst, scheme, typeEnv, tyVar, tyCon, tyArrow,

    unificationFail, unboundVariable, infiniteType
} from './checker_types'

export {
    pub_infer as infer
}

const int = tyCon('int');
const int2int = tyArrow(int, int);

const arithScheme  = scheme(Nil, tyArrow(int, int2int));
const bottomScheme = scheme(cons("a'", Nil), tyVar("a'"));

const nativeTypes = typeEnv(Map.fromObject({
    '+': arithScheme,
    '-': arithScheme,
    '/': arithScheme,
    '*': arithScheme,
    '⊥': bottomScheme
}));

function extend(ctx: TypeEnv, varName: string, scheme: Scheme): TypeEnv {
    return typeEnv(Map.insert(varName, scheme, ctx.typeMap));
}

function compose(left: Subst, right: Subst): Subst {
    return Map.union(
        Map.map(right, t => apply(SubstitutableType, left, t)),
        left
    );
}

function mkName(id: number) {
    const alphabet = 'abcdefghijklmnopqrstuvwxyz';
    const idx = (id / alphabet.length) | 0;
    const suffix = idx !== 0 ? idx : '';

    return alphabet[id % alphabet.length] + suffix;
}

/* do { idCounter } <- getM
      putM { idCounter:


 theme */

@media screen and (max-width: 679px) {
    .audioplayer-volume-adjust {
        display: none;
    }
}
/*!
 * @copyright © Kartik Visweswaran, Krajee.com, 2014 - 2024
 * @version 1.5.4
 *
 * Bootstrap Popover Extended - Popover with modal behavior, styling enhancements and more.
 *
 * For more JQuery/Bootstrap plugins and demos visit http://plugins.krajee.com
 * For more Yii related demos visit http://demos.krajee.com
 */.popover-x{position:absolute;top:0;left:0;z-index:1070;display:none;border:1px solid rgba(0,0,0,.2);border-radius:5px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover-x .popover-title{border-radius:5px 5px 0 0}.popover-x.top{margin-top:-10px}.popover-x.right{margin-left:10px}.popover-x.bottom{margin-top:10px}.popover-x.left{margin-left:-10px}.popover-x .arrow,.popover-x .arrow:after{position:absolute;display:block;width:0;height:0;border:solid transparent}.popover-x .arrow{border-width:11px}.popover-x .arrow:after{content:"";border-width:10px}.popover-x.top .arrow{bottom:-10px;left:50%;margin-left:-10px;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover-x.top .arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover-x.right .arrow{top:50%;left:-.98rem;margin-top:-.5rem;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover-x.is-bs5.right .arrow{left:-.65rem}.popover-x.right .arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover-x.bottom .arrow{top:-10px;left:50%;margin-left:-10px;border-top-width:0;border-bottom-color:rgba(0,0,0,.25)}.popover-x.bottom .arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover-x.left .arrow{top:50%;right:-.98rem;margin-top:-.5rem;border-right-width:0;border-left-color:rgba(0,0,0,.25)}.popover-x.is-bs5.left .arrow{right:-.65rem}.popover-x.left .arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.popover-lg{min-width:480px}.popover-md{min-width:350px}.popover-x .close{line-height:0;margin-top:8px;cursor:pointer}.popover-x.is-bs5 .close{float:right;font-size:1.5rem;font-weight:700;color:#000;text-shadow:0 1px 0 #fff;opacity:.5;padding:0;border:0;background-color:transparent}.popover-x.is-bs5 .close:hover{text-decoration:none}.popover-x.bottom-right .arrow,.popover-x.top-right .arrow{left:auto;right:.85rem}.popover-x.bottom-left .arrow,.popover-x.top-left .arrow{left:.85rem}.popover-x.left-top .arrow,.popover-x.right-top .arrow{top:16px}.popover-x.left-bottom .arrow,.


ন না।"
  },
  {
    "surah_number": 47,
    "verse_number": 35,
    "content":
        "অতএব, তোমরা হীনবল হয়ো না এবং সন্ধির আহবান জানিও না, তোমরাই হবে প্রবল। আল্লাহই তোমাদের সাথে আছেন। তিনি কখনও তোমাদের কর্ম হ্রাস করবেন না।"
  },
  {
    "surah_number": 47,
    "verse_number": 36,
    "content":
        "পার্থিব জীবন তো কেবল খেলাধুলা, যদি তোমরা বিশ্বাসী হও এবং সংযম অবলম্বন কর, আল্লাহ তোমাদেরকে তোমাদের প্রতিদান দেবেন এবং তিনি তোমাদের ধন-সম্পদ চাইবেন না।"
  },
  {
    "surah_number": 47,
    "verse_number": 37,
    "content":
        "তিনি তোমাদের কাছে ধন-সম্পদ চাইলে অতঃপর তোমাদেরকে অতিষ্ঠ করলে তোমরা কার্পণ্য করবে এবং তিনি তোমাদের মনের সংকীর্ণতা প্রকাশ করে দেবেন।"
  },
  {
    "surah_number": 47,
    "verse_number": 38,
    "content":
        "শুন, তোমরাই তো তারা, যাদেরকে আল্লাহর পথে ব্যয় করার আহবান জানানো হচ্ছে, অতঃপর তোমাদের কেউ কেউ কৃপণতা করছে। যারা কৃপণতা করছে, তারা নিজেদের প্রতিই কৃপণতা করছে। আল্লাহ অভাবমুক্ত এবং তোমরা অভাবগ্রস্থ। যদি তোমরা মুখ ফিরিয়ে নাও, তবে তি


SOCKADDR_IN_SIN_LEN.
	* talk/invite.c (invite_remote): Use memcpy instead of bcopy.
	* talk/look_up.c (check_local): Likewise.
	* configure.in: Add check for sin_len field in struct sockaddr_in.
	Fix test for whether we should build talk.

Tue Feb 18 22:09:51 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	* iumacros.m4 (IU_CONFIG_PATHS): Use `set' instead of `read' with
	a here document, because the latter fucks up in some shells.

Tue Feb 18 20:14:48 1997  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>

	* configure.in: Add AC_STRUCT_ST_BLKSIZE test.
	* ftp/cmds.c: Include glob.h last, it defines "const" to null
	which breaks some system headers.
	* ftp/ftp.c (recvrequest): Handle missing st_blksize member.
	* ftp/ftp_var.h: Make all declarations extern except in one file
	to avoid conflicts when linking.
	* ftp/main.c (FTP_EXTERN): Activate this macro so the declarations
	in ftp/ftp_var.h become definitions.
	* ftpd/ftpcmd.y: Include glob.h last, it defines "const" to null
	which breaks some system headers.
	* ftpd/popen.c: Likewise.
	* ftpd/ftpd.c: Likewise.  Also handle missing st_blksize member.
	* headers/acconfig.h: Normalize variable argument list usage.
	Also add support to handle missing st_blksize member.
	* libinetutils/snprintf.c: Normalize variable argument list usage.
	* libinetutils/snprintf.h: Likewise.  Also constify DATA.pf member.
	* rcp/util.c: Handle missing st_blksize member.
	* rexecd/rexecd.c: Make environ extern to avoid link time conflicts.
	* rshd/rshd.c: Likewise.
	* telnetd/ext.h: Make terminaltype and line be extern to avoid
	link time conflicts.
	* telnetd/sys_term.c (rmut): protect use of ut_host member.
	* telnetd/telnetd.c (main, doit): Likewise.
	(utmp_len): Only declare if HAVE_UTMP_UT_HOST.
	* tftp/extern.h (toplevel): New declaration.
	* tftp/tftp.c (toplevel): Duplicate definition removed.
	* uucpd/uucpd.c (dologout): Remove unused status variable.  Add a
	case for HAVE_WAITPID.

Tue Feb 18 01:13:16 1997  Miles Bader  <miles@gnu.ai.mit.edu>

	From Alain Magloire <alain.magloire@rcsm.ee.mcgill.ca>:
	* ftpd/ftpd.c (dologout): Small race condition with SIGURG (D. Greenman)
	* ftpd/popen.c (popen): Buffer overflow in argv[] (AUSCERT)
	* ftpd/ftpcmd.y: check_login for PASV (*Hobbit)

	* libinetutils/version.c (inetutils_version): Change to `1


 is styled with a
/// shadow.
///
/// Example:
///
///     <paper-button>flat button</paper-button>
///     <paper-button raised>raised button</paper-button>
///     <paper-button noink>No ripple effect</paper-button>
///
/// You may use custom DOM in the button body to create a variety of buttons. For example, to
/// create a button with an icon and some text:
///
///     <paper-button>
///       <core-icon icon="favorite"></core-icon>
///       custom button content
///     </paper-button>
///
/// ## Styling
///
/// Style the button with CSS as you would a normal DOM element.
///
///     /* make #my-button green with yellow text */
///     #my-button {
///         background: green;
///         color: yellow;
///     }
///
/// By default, the ripple is the same color as the foreground at 25% opacity. You may
/// customize the color using this selector:
///
///     /* make #my-button use a blue ripple instead of foreground color */
///     #my-button::shadow #ripple {
///       color: blue;
///     }
///
/// The opacity of the ripple is not customizable via CSS.
@CustomElementProxy('paper-button')
class PaperButton extends PaperButtonBase {
  PaperButton.created() : super.created();
  factory PaperButton() => new Element.tag('paper-button');

  /// If true, the button will be styled with a shadow.
  bool get raised => jsElement[r'raised'];
  set raised(bool value) { jsElement[r'raised'] = value; }

  /// By default the ripple emanates from where the user touched the button.
  /// Set this to true to always center the ripple.
  bool get recenteringTouch => jsElement[r'recenteringTouch'];
  set recenteringTouch(bool value) { jsElement[r'recenteringTouch'] = value; }

  /// By default the ripple expands to fill the button. Set this to true to
  /// constrain the ripple to a circle within the button.
  bool get fill => jsElement[r'fill'];
  set fill(bool value) { jsElement[r'fill'] = value; }
}
// Copyright (c) 2015, the Dart project authors.  Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
@TestOn('browser')
library polymer.test.src.standard.property_change_notification_test;

import 'dart:html';

import 'package:test/test.dart';
import 'package:polymer/polymer.dart';

ParentElement parent;
ChildElement child;
GrandchildElement grandchild;
Model defaultModel = new Model(0);

main() async {
  await initPolymer();

  setUp(() {
    parent = document.createElement('parent-element');
    child = parent.$['child'];
    grandchild = child.$['grandchild'];
  });

  test('Children can notify parents of changes', () {
    expect(parent.model, defaultModel);
    expect(child.model, defaultModel);
    expect(grandchild.value, defaultModel.value);

    var newModel = new Model(1);
    child.set('model', newModel);
    expect(parent.model, newModel);
    expect(grandchild.value, newModel.value);

    grandchild.set('value', 2);
    expect(newModel.value, 2);
    expect(child.model.value, 2);
    expect(parent.model.value, 2);
  });

  test('Elements fire property-changed events', () async {
    expect(grandchild.valueChangedCount, 1);
    expect(child.modelChangedCount, 1);
    expect(parent.modelChangedCount, 1);

    // Deep child changes subproperty of model.
    grandchild.set('value', 1);
    expect(grandchild.valueChangedCount, 2);
    expect(child.modelChangedCount, 2);
    expect(parent.modelChangedCoun


#!/usr/bin/env python3

import rospy
import functools
from clover.srv import SetLEDEffect
from led_msgs.srv import SetLEDs
from led_msgs.msg import LEDStateArray, LEDState
from util import handle_response

rospy.init_node('autotest_led', disable_signals=True)

set_leds = handle_response(rospy.ServiceProxy('led/set_leds', SetLEDs))
set_effect = handle_response(rospy.ServiceProxy('led/set_effect', SetLEDEffect))

led_count = len(rospy.wait_for_message('led/state', LEDStateArray, timeout=10).leds)
print('LED count =', led_count)

print('== Testing effects ==')

input('Fill red [enter] ')
set_effect(r=255, g=0, b=0)

input('Fill green [enter] ')
set_effect(r=0, g=100, b=0)

input('Blink white [enter] ')
set_effect(effect='blink', r=255, g=255, b=255)
rospy.sleep(3)

input('Blink fast violet [enter] ')
set_effect(effect='blink_fast', r=220, g=20, b=250)
rospy.sleep(3)

input('Fade to blue [enter] ')
set_effect(effect='fade', r=0, g=0, b=255)

input('Wipe to yellow [enter] ')
set_effect(effect='wipe', r=255, g=255, b=40)

input('Flash red [enter] ')
set_effect(effect='flash', r=255, g=0, b=0)
rospy.sleep(1)

input('Rainbow [enter] ')
set_effect(effect='rainbow')
rospy.sleep(4)

input('Rainbow fill [enter] ')
set_effect(effect='rainbow_fill')
rospy.sleep(4)

input('Turn off [enter] ')
set_effect()

print('== Testing low-level control ==')

input('Fill orange [enter] ')
set_leds(leds=[LEDState(index=i, r=245, g=155, b=0) for i in range(led_count)])

input('Fill blue gradient [enter] ')
set_leds(leds=[LEDState(index=i, r=0, g=20, b=int(255 * i / led_count)) for i in range(led_count)])

input('Animate green dot [enter] ')
set_effect()
for i in range(led_count):
    if i > 0:
        set_leds(leds=[LEDState(index=i - 1, r=0, g=0, b=0)])
    set_leds(leds=[LEDState(index=i, r=0, g=255, b=0)])
    rospy.sleep(0.05)

input('Turn off [enter] ')
set_effect()


en
		Timex:AddNamedSchedule("wowon_gxf_"..art..n, up, true, nil, wowon_UI_GXF_sf, art, n)
	end
	if (x==false) then
		Timex:DeleteNamedSchedule("wowon_gxf_"..art..n)
	end
end

--[[

Timex:NamedScheduleCheck("n")

Example:
Timex:CheckNamedSchedule("MyAddOnSchedNameOne")

-- return TRUE or nil.

Timex:AddNamedSchedule(n, t, r, c, f, a)

Key:
n	The name of the schedule, this is a string.
t	The delay before it fires, this is a number.
r	Whether it constantly repeats, this is a boolean.
c	The amount of times to run, this is a number.
f	The function name, this is not a string.
a	The function arguments.

Example:
Timex:AddNamedSchedule("MyAddOnSchedNameTwo",5,TRUE,nil,ace["print"],ace,"Hello World!")

Timex:DeleteNamedSchedule("n")

Example:
Timex:DeleteNamedSchedule("MyAddOnSchedNameOne")

]]


_BIGENDIAN = 2
    Bigendian = 2,
    ///  `Sequential` -> VIPS_FOREIGN_SEQUENTIAL = 4
    Sequential = 4,
    ///  `All` -> VIPS_FOREIGN_ALL = 7
    All = 7,
}

#[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
pub enum ForeignHeifCompression {
    ///  `Hevc` -> VIPS_FOREIGN_HEIF_COMPRESSION_HEVC = 1
    Hevc = 1,
    ///  `Avc` -> VIPS_FOREIGN_HEIF_COMPRESSION_AVC = 2
    Avc = 2,
    ///  `Jpeg` -> VIPS_FOREIGN_HEIF_COMPRESSION_JPEG = 3
    Jpeg = 3,
    ///  `Av1` -> VIPS_FOREIGN_HEIF_COMPRESSION_AV1 = 4
    Av1 = 4,
    ///  `Last` -> VIPS_FOREIGN_HEIF_COMPRESSION_LAST = 5
    Last = 5,
}

#[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
pub enum ForeignJpegSubsample {
    ///  `Auto` -> VIPS_FOREIGN_JPEG_SUBSAMPLE_AUTO = 0
    Auto = 0,
    ///  `On` -> VIPS_FOREIGN_JPEG_SUBSAMPLE_ON = 1
    On = 1,
    ///  `Off` -> VIPS_FOREIGN_JPEG_SUBSAMPLE_OFF = 2
    Off = 2,
    ///  `Last` -> VIPS_FOREIGN_JPEG_SUBSAMPLE_LAST = 3
    Last = 3,
}

#[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
pub enum ForeignPngFilter {
    ///  `None` -> VIPS_FOREIGN_PNG_FILTER_NONE = 8
    None = 8,
    ///  `Sub` -> VIPS_FOREIGN_PNG_FILTER_SUB = 16
    Sub = 16,
    ///  `Up` -> VIPS_FOREIGN_PNG_FILTER_UP = 32
    Up = 32,
    ///  `Avg` -> VIPS_FOREIGN_PNG_FILTER_AVG = 64
    Avg = 64,
    ///  `Paeth` -> VIPS_FOREIGN_PNG_FILTER_PAETH = 128
    Paeth = 128,
    ///  `All` -> VIPS_FOREIGN_PNG_FILTER_ALL = 248
    All = 248,
}

#[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
pub enum ForeignTiffCompression {
    ///  `None` -> VIPS_FOREIGN_TIFF_COMPRESSION_NONE = 0
    None = 0,
    ///  `Jpeg` -> VIPS_FOREIGN_TIFF_COMPRESSION_JPEG = 1
    Jpeg = 1,
    ///  `Deflate` -> VIPS_FOREIGN_TIFF_COMPRESSION_DEFLATE = 2
    Deflate = 2,
    ///  `Packbit` -> VIPS_FOREIGN_TIFF_COMPRESSION_PACKBITS = 3
    Packbit = 3,
    ///  `Ccittfax4` -> VIPS_FOREIGN_TIFF_COMPRESSION_CCITTFAX4 = 4
    Ccittfax4 = 4,
    ///  `Lzw` -> VIPS_FOREIGN_TIFF_COMPRESSION_LZW = 5
    Lzw = 5,
    ///  `Webp` -> VIPS_FOREIGN_TIFF_COMPRESSION_WEBP = 6
    Webp = 6,
    ///  `Zstd` -> VIPS_FOREIGN_TIFF_COMPRESSION_ZSTD = 7
    Zstd = 7,
    ///  `Last` -> VIPS_FOREIGN_TIFF_COMPRESSION_LAST = 8
    Last = 8,
}

#[derive(Copy, Clone, Debug, FromPrimitive, ToPrimitive)]
pub enum ForeignTiffPredictor {
    ///  `None` -> VIPS_FOREIGN_TIFF_PREDICTOR_NONE = 1
    None = 1,
    //


ᛃ	RUNIC LETTER JERAN J

16C4	5828	ᛄ	RUNIC LETTER GER

16C5	5829	ᛅ	RUNIC LETTER LONG-BRANCH-AR AE

16C6	5830	ᛆ	RUNIC LETTER SHORT-TWIG-AR A

16C7	5831	ᛇ	RUNIC LETTER IWAZ EOH

16C8	5832	ᛈ	RUNIC LETTER PERTHO PEORTH P

16C9	5833	ᛉ	RUNIC LETTER ALGIZ EOLHX

16CA	5834	ᛊ	RUNIC LETTER SOWILO S

16CB	5835	ᛋ	RUNIC LETTER SIGEL LONG-BRANCH-SOL S

16CC	5836	ᛌ	RUNIC LETTER SHORT-TWIG-SOL S

16CD	5837	ᛍ	RUNIC LETTER C

16CE	5838	ᛎ	RUNIC LETTER Z

16CF	5839	ᛏ	RUNIC LETTER TIWAZ TIR TYR T

16D0	5840	ᛐ	RUNIC LETTER SHORT-TWIG-TYR T

16D1	5841	ᛑ	RUNIC LETTER D

16D2	5842	ᛒ	RUNIC LETTER BERKANAN BEORC BJARKAN B

16D3	5843	ᛓ	RUNIC LETTER SHORT-TWIG-BJARKAN B

16D4	5844	ᛔ	RUNIC LETTER DOTTED-P

16D5	5845	ᛕ	RUNIC LETTER OPEN-P

16D6	5846	ᛖ	RUNIC LETTER EHWAZ EH E

16D7	5847	ᛗ	RUNIC LETTER MANNAZ MAN M

16D8	5848	ᛘ	RUNIC LETTER LONG-BRANCH-MADR M

16D9	5849	ᛙ	RUNIC LETTER SHORT-TWIG-MADR M

16DA	5850	ᛚ	RUNIC LETTER


;.nebius.iam.v1.ListFederationCertificateByFederationRequest\x1a0.nebius.iam.v1.ListFederationCertificateResponse\x12X\n" +
	"\x06Update\x121.nebius.iam.v1.UpdateFederationCertificateRequest\x1a\x1b.nebius.common.v1.Operation\x12X\n" +
	"\x06Delete\x121.nebius.iam.v1.DeleteFederationCertificateRequest\x1a\x1b.nebius.common.v1.Operation\x1a\n" +
	"\xbaJ\acpl.iamBh\n" +
	"\x14ai.nebius.pub.iam.v1B!FederationCertificateServiceProtoP\x01Z+github.com/nebius/gosdk/proto/nebius/iam/v1b\x06proto3"

var (
	file_nebius_iam_v1_federation_certificate_service_proto_rawDescOnce sync.Once
	file_nebius_iam_v1_federation_certificate_service_proto_rawDescData []byte
)

func file_nebius_iam_v1_federation_certificate_service_proto_rawDescGZIP() []byte {
	file_nebius_iam_v1_federation_certificate_service_proto_rawDescOnce.Do(func() {
		file_nebius_iam_v1_federation_certificate_service_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_nebius_iam_v1_federation_certificate_service_proto_rawDesc), len(file_nebius_iam_v1_federation_certificate_service_proto_rawDesc)))
	})
	return file_nebius_iam_v1_federation_certificate_service_proto_rawDescData
}

var file_nebius_iam_v1_federation_certificate_service_proto_msgTypes = make([]protoimpl.MessageInfo, 6)
var file_nebius_iam_v1_federation_certificate_service_proto_goTypes = []any{
	(*CreateFederationCertificateRequest)(nil),           // 0: nebius.iam.v1.CreateFederationCertificateRequest
	(*GetFederationCertificateRequest)(nil),              // 1: nebius.iam.v1.GetFederationCertificateRequest
	(*ListFederationCertificateByFederationRequest)(nil), // 2: nebius.iam.v1.ListFederationCertificateByFederationRequest
	(*UpdateFederationCertificateRequest)(nil),           // 3: nebius.iam.v1.UpdateFederationCertificateRequest
	(*DeleteFederationCertificateRequest)(nil),           // 4: nebius.iam.v1.DeleteFederationCertificateRequest
	(*ListFederationCertificateResponse)(nil),            // 5: nebius.iam.v1.ListFederationCertificateResponse
	(*v1.ResourceMetadata)(nil),                          // 6: nebius.common.v1.ResourceMetadata
	(*FederationCertificateSpec)(nil),                    // 7: nebius.iam.v1.FederationCertificateSpec
	(*FederationCertificate)(nil),                        // 8: nebius.iam.v1.FederationCertificate
	(*v1.Operation)(nil),                                 // 9: nebius.common.v1.Operation
}
var file_nebius_iam_v1_federation_certificate_service_proto_depIdxs = []int32{
	6,  // 0: nebius.iam.v1.CreateFederationCertificateRequest.metadata:type_name -> nebius.common.v1.ResourceMetadata
	7,  // 1: nebius.iam.v1.CreateFederationCertificateRequest.spec:type_name -> nebius.iam.v1.FederationCertificateSpec
	6,  // 2: nebius.iam.v1.UpdateFederationCertificateRequest.metadata:type_name -> nebius.common.v1.ResourceMetadata
	7,  // 3: nebius.iam.v1.UpdateFederationCertificateRequest.spec:type_name ->


izar con cadenas de caracteres
 * en tu lenguaje. Algunas de esas operaciones podrían ser (busca todas las que puedas):
 * - Acceso a caracteres específicos, subcadenas, longitud, concatenación, repetición,
 *   recorrido, conversión a mayúsculas y minúsculas, reemplazo, división, unión,
 *   interpolación, verificación...
 *
 * DIFICULTAD EXTRA (opcional):
 * Crea un programa que analice dos palabras diferentes y realice comprobaciones
 * para descubrir si son:
 * - Palíndromos
 * - Anagramas
 * - Isogramas
 */

fun main() {
    var str1: String = "Hola"
    var str2: String = "Mundo"

    // Acceso a un caracter especifico
    println(str1[1])
    println(str1.get(1))

    // Substring
    str1 = "Esto es una string"
    println(str1.substring(12))
    println(str1.substring(0, 4))

    // Longitud de la string
    println(str1.length)

    // Concatenación
    str1 = "Hola "
    println(str1.plus(str2))

    // Repeticion
    str1 = "a"
    println(str1.repeat(5))

    // Añadir valor tanto al inicio o al final si no cumple una longitud minina.
    str1 = "Hola"
    println(str1.padEnd(8,'!'))
    println(str1.padStart(8,'!'))

    // Mayusculas, minusculas
    println(str1)
    println(str1.uppercase())
    println(str1.lowercase())

    // Reemplazo
    str1 = "hola mundo"
    println(str1.replace('o', '?'))

    // División
    val palabras: List<String> = str1.split(' ')
    println(palabras.toString())

    // Verificación
    println(str1.contains("hola"))

    // Trim
    str1 = "    hola    "
    println(str1.trim())

    // recorrido
    str1 = "abcdefg"
    for (i in str1){
        println(i)
    }

    // Interpolación
    str1 = "interpolación"
    println("Esto es una prueba de $str1")

    // Reto extra
    println(analizarPalabra("rayar", "rayar"))
    println(analizarPalabra("cava", "vaca"))
    println(analizarPalabra("prueba", ""))
}

fun analizarPalabra(str1: String, str2: String): String {
    if (esPalindromo(str1, str2))
        return "$str1 es un palindromo"

    if (esAnagrama(str1, str2))
        return "$str2 es un anagrama de $str1"

    if (esIsograma(str1))
        return  "$str1 es un isograma"

    return "$str1 no es ni un palindromo, anagrama o isograma"
}

fun esPalindromo(str1: String, str2: String): Boolean {
    return when (str1){
        str2.reversed() -> true
        else -> false
    }
}

fun esAnagrama(str1: String, str2: String): Boolean {

    if (str1.length != str2.length)
        return false

    var palabra1: CharArray = str1.toCharArray()
    var palabra2: CharArray = str2.toCharArray()

    palabra1.sort()
    palabra2.sort()

    for (i in palabra1.indices){
        if (palabra1[i] != palabra2[i]){
            return false
        }
    }

    return true
}

fun esIsograma(str1: String): Bool


}
#endif

#if LOG4CXX_CFSTRING_API

MDC::MDC(const CFStringRef& key1, const CFStringRef& value)
{
	Transcoder::decode(key1, key);
	LOG4CXX_DECODE_CFSTRING(v, value);
	putLS(key, v);
}

CFStringRef MDC::get(const CFStringRef& key)
{
	LOG4CXX_DECODE_CFSTRING(lkey, key);
	LogString lvalue;

	if (get(lkey, lvalue))
	{
		LOG4CXX_ENCODE_CFSTRING(value, lvalue);
		return value;
	}

	return CFSTR("");
}

void MDC::put(const CFStringRef& key, const CFStringRef& value)
{
	LOG4CXX_DECODE_CFSTRING(lkey, key);
	LOG4CXX_DECODE_CFSTRING(lvalue, value);
	putLS(lkey, lvalue);
}

CFStringRef MDC::remove(const CFStringRef& key)
{
	LOG4CXX_DECODE_CFSTRING(lkey, key);
	LogString lvalue;

	if (remove(lkey, lvalue))
	{
		LOG4CXX_ENCODE_CFSTRING(value, lvalue);
		return value;
	}

	return CFSTR("");
}
#endif

/*
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You under the Apache License, Version 2.0
 * (the "License"); you may not use this file except in compliance with
 * the License.  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
#include <log4cxx/logstring.h>
#include <log4cxx/helpers/cyclicbuffer.h>
#include <log4cxx/spi/loggingevent.h>
#include <log4cxx/helpers/exception.h>
#include <log4cxx/helpers/pool.h>
#include <log4cxx/helpers/stringhelper.h>

using namespace LOG4CXX_NS;
using namespace LOG4CXX_NS::helpers;
using namespace LOG4CXX_NS::spi;

struct CyclicBuffer::CyclicBufferPriv
{
	CyclicBufferPriv(int maxSize1) :
		ea(maxSize1), first(0), last(0), numElems(0), maxSize(maxSize1) {}

	LOG4CXX_NS::spi::LoggingEventList ea;
	int first;
	int last;
	int numElems;
	int maxSize;
};

/**
Instantiate a new CyclicBuffer of at most maxSize events.
The maxSize argument must a positive integer.
@param maxSize The maximum number of elements in the buffer.
*/
CyclicBuffer::CyclicBuffer(int maxSize1)
	: m_priv(std::make_unique<CyclicBufferPriv>(maxSize1))
{
	if (maxSize1 < 1)
	{
		LogString msg(LOG4CXX_STR("The maxSize argument ("));
		Pool p;
		StringHelper::toString(maxSize1, p, msg);
		msg.append(LOG4CXX_STR(") is not a positive integer."));
		throw IllegalArgumentException(msg);
	}
}

CyclicBuffer::~CyclicBuffer()
{
}

/**
Add an event as the last event in the buffer.
*/
void CyclicBuffer::a


lass="relatedlink">非常大气、简单的公司名字。不仅寓意吉祥美好，又满足大家对于简单大气的公司名字的查找。

一枝红：寓意着养殖公司的动物都健康且充满活力，一枝独秀。牛之家：寓意着公司牛的种类非常多，各种类型的牛都有。这一公司的名字是非常直接的，一看就知道是以养牛为主的。

其中“桑”字，指字形呈现出高塔形状，表有、顶端含义，寓意公司会成为行业的者。“霓”，指霓虹灯，适合灯具公司的名字，有辨识度。

动物命名的婚庆公司名字推荐0玉兔——相信大多数的人对于这个名称应该是很熟悉的，此名是出自于中国神话传说中的一个神兽，住在月球上，同时在很多仙侠剧中，都是有它的出现。

好听的字有（麦、乐、辰、睿、辉、恒、迅、盛、泰、霆、凯、腾）等，不仅好听，而且拥有美好的寓意。

宠物医院大全(宠物医院名字大全推荐)

开发区玉海宠物诊所8762892519。大连长生宠物诊所8454930320。泡崖唐超然宠物诊所8649991621。开发区岗西宠物医院8753294922。台山爱心宠物诊所821511222大连市宠物爱好者协会8364400725。大连乖宝宝宠物门诊82707009326。

<a href="http://www.


/*
 * Copyright (c) 2012 Clément Bœsch
 *
 * This file is part of FFmpeg.
 *
 * FFmpeg is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * FFmpeg is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with FFmpeg; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
 */

/**
 * @file
 * MPL2 subtitles decoder
 *
 * @see http://web.archive.org/web/20090328040233/http://napisy.ussbrowarek.org/mpl2-eng.html
 */

#include "avcodec.h"
#include "ass.h"
#include "codec_internal.h"
#include "libavutil/bprint.h"

static int mpl2_event_to_ass(AVBPrint *buf, const char *p)
{
    if (*p == ' ')
        p++;

    while (*p) {
        int got_style = 0;

        while (*p && strchr("/\\_", *p)) {
            if      (*p == '/')  av_bprintf(buf, "{\\i1}");
            else if (*p == '\\') av_bprintf(buf, "{\\b1}");
            else if (*p == '_')  av_bprintf(buf, "{\\u1}");
            got_style = 1;
            p++;
        }

        while (*p && *p != '|') {
            if (*p != '\r' && *p != '\n')
                av_bprint_chars(buf, *p, 1);
            p++;
        }

        if (*p == '|') {
            if (got_style)
                av_bprintf(buf, "{\\r}");
            av_bprintf(buf, "\\N");
            p++;
        }
    }

    return 0;
}

static int mpl2_decode_frame(AVCodecContext *avctx, AVSubtitle *sub,
                             int *got_sub_ptr, const AVPacket *avpkt)
{
    int ret = 0;
    AVBPrint buf;
    const char *ptr = avpkt->data;
    FFASSDecoderContext *s = avctx->priv_data;

    av_bprint_init(&buf, 0, AV_BPRINT_SIZE_UNLIMITED);
    if (ptr && avpkt->size > 0 && *ptr && !mpl2_event_to_ass(&buf, ptr))
        ret = ff_ass_add_rect(sub, buf.str, s->readorder++, 0, NULL, NULL);
    av_bprint_finalize(&buf, NULL);
    if (ret < 0)
        return ret;
    *got_sub_ptr = sub->num_rects > 0;
    return avpkt->size;
}

const FFCodec ff_mpl2_decoder = {
    .p.name         = "mpl2",
    CODEC_LONG_NAME("MPL2 subtitle"),
    .p.type         = AVMEDIA_TYPE_SUBTITLE,
    .p.id           = AV_CODEC_ID_MPL2,
    FF_CODEC_DECODE_SUB_CB(mpl2_decode_frame),
    .init           = ff_ass_subtitle_header_default,
    .flush          = ff_ass_decoder_flush,
    .priv_data_size = sizeof(FFASSDecoderContext),
};


sha256
            try {
                val repo = RepositoryCommonUtils.getRepositoryDetail(projectId, repoName)
                if (migrateRepoStorageService.migrating(projectId, repoName)) {
                    // 仓库正在迁移时触发恢复，需要先迁移归档存储，随后将恢复到迁移的目标存储中
                    val migrated = migrateArchivedFileService.migrateArchivedFile(
                        repo.oldCredentialsKey, repo.storageCredentials?.key, sha256
                    )
                    if (!migrated) {
                        // 不存在归档文件，无法恢复
                        logger.info("archive file of node[$projectId/$repoName$fullPath($sha256)] not exist")
                        return
                    }
                }
                val credentialKey = repo.storageCredentials?.key
                if (nodeMap["archived"].toString() == "true") {
                    val req = ArchiveFileRequest(sha256, credentialKey, SYSTEM_USER)
                    archiveClient.restore(req)
                } else {
                    val req = UncompressFileRequest(sha256, credentialKey, SYSTEM_USER)
                    archiveClient.uncompress(req)
                }
                context.count.incrementAndGet()
                context.size.addAndGet(node.size)
                context.success.incrementAndGet()
                logger.info("Restore node $projectId/$repoName$fullPath($sha256)")
            } catch (e: Exception) {
                context.failed.incrementAndGet()
                logger.error("Restore node error $projectId/$repoName$fullPath($sha256)", e)
            } finally {
                context.total.incrementAndGet()
            }
        }
    }

    companion object {
        private val logger = LoggerFactory.getLogger(ArchiveJobServiceImpl::class.java)
    }
}
/*
 * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.
 *
 * Copyright (C) 2019 Tencent.  All rights reserved.
 *
 * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.
 *
 * A copy of the MIT License is included in this file.
 *
 *
 * Terms of the MIT License:
 * ---------------------------------------------------
 * Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
 * documentation files (the "Software"), to deal in the Software without restriction, including without limitation the
 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to
 * permit persons to whom the Software is furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all copies or substantial portions of
 * the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
 * LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
 * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 */

package com.tencent.bkrepo.job.config.properties

import org.springframework.boot.context.properties.ConfigurationProperties
import org.springframework.stereotype.Component

@Component
@ConfigurationProperties("job.temporary-token-cleanup")
class TemporaryTokenCleanupJobProperties: BatchJobProperties() {
    override var cron: String = "0 0 3 * * ?"
    var reserveDays: Long = 7L
}
/*
 * Tencent is pleased to support the open source community by making BK-CI 蓝鲸持续集成平台 available.
 *
 * Copyright (C) 2024 Tencent.  All rights reserved.
 *
 * BK-CI 蓝鲸持续集成平台 is licensed under the MIT license.
 *
 * A copy of the MIT License is included i


sb2.addSegment(Segment.create().setBackground(blue).setValue(50d).setTooltip("Fifth Value"));

		// Simple bar with colors, no spacing
		final Label lbl3 = new Label(shell, SWT.NONE);
		lbl3.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false));
		lbl3.setText("Simple bar with colors, no spacing");

		SegmentedBar sb3 = new SegmentedBar(shell, SWT.NONE);
		sb3.setSpacing(0);
		sb3.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
		sb3.addSegment(Segment.create().setBackground(blue).setValue(10d).setBackground(blue));
		sb3.addSegment(Segment.create().setBackground(blue).setValue(20d).setBackground(display.getSystemColor(SWT.COLOR_GREEN)));
		sb3.addSegment(Segment.create().setBackground(blue).setValue(70d).setBackground(display.getSystemColor(SWT.COLOR_DARK_MAGENTA)));

		// Bar with text
		final Label lbl4 = new Label(shell, SWT.NONE);
		lbl4.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false));
		lbl4.setText("Bar with text");

		SegmentedBar sb4 = new SegmentedBar(shell, SWT.NONE);
		sb4.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
		sb4.addSegment(Segment.create().setBackground(blue).setValue(15d).setBackground(blue).setText("Videos"));
		sb4.addSegment(Segment.create().setBackground(blue).setValue(20d).setBackground(violet).setText("Photos"));
		sb4.addSegment(Segment.create().setBackground(blue).setValue(5d).setBackground(lightGreen).setText("Documents"));
		sb4.addSegment(Segment.create().setBackground(blue).setValue(40d).setBackground(pink).setText("Games"));
		sb4.addSegment(Segment.create().setBackground(blue).setValue(20d).setBackground(orange).setText("Applications"));

		// Foreground & fonts
		final Label lbl5 = new Label(shell, SWT.NONE);
		lbl5.setLayoutData(new GridData(GridData.BEGINNING, GridData.CENTER, false, false));
		lbl5.setText("Bar with text, different foregrounds and fonts");

		Font boldFont = SWTGraphicUtil.buildFontFrom(shell, SWT.BOLD);
		Font bigItalicFont = SWTGraphicUtil.buildFontFrom(shell, SWT.ITALIC, 14);

		SegmentedBar sb5 = new SegmentedBar(shell, SWT.NONE);
		sb5.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false));
		sb5.addSegment(Segment.create().setBackground(blue).setValue(15d).setBackground(blue).//
				setText("Videos").setForeground(display.getSystemColor(SWT.COLOR_GRAY)));
		sb5.addSegment(Segment.create().setBackground(blue).setValue(20d).setBackground(violet).//
				setText("Photos").setForeground(display.getSystemColor(SWT.COLOR_WHITE)));
		sb5.addSegment(Segment.create().setBackground(blue).setValue(5d).setBackground(lightGreen).setText("Documents"));
		sb5.addSegment(Segment.create().setBackground(blue).setValue(40d).setBackground(pink).//
				setText("Games").setFont(boldFont));
		sb5.addSegment(Segment.create().setBackground(blue).setValue(20d).setBackground(orange).//
				setText("Applications").setFont(bigItalicFont));

		shell.setSize(700, 350);
		shell.open();
		SWTGraphicUtil.centerShell(shell);

		while (!shell.isDisposed()) {
			if (!display.readAndDispatch()) {
				display.sleep();
			}
		}

		blue.dispose();
		violet.dispose();
		lightGreen.dispose();
		pink.dispose();
		orange.dispose();
		boldFont.dispose();


{
                if (!TimedGroup.FromConfig(config, out var group))
                {
                    GatherBuddy.Log.Error($"Invalid items in gather group {group.Name} skipped.");
                    changes = true;
                }

                var searchName = group.Name.ToLowerInvariant().Trim();
                if (searchName.Length == 0)
                {
                    changes = true;
                    GatherBuddy.Log.Error("Gather group without name found, skipping.");
                    continue;
                }

                if (!manager.Groups.TryAdd(searchName, group))
                {
                    changes = true;
                    GatherBuddy.Log.Error($"Multiple gather groups with the same name {searchName} found, skipping later ones.");
                }
            }

            changes |= man


from django.core.management.base import BaseCommand, CommandError
from django.db.models import F, Q
from api import models
import sys

def update_cards_join_cache(opt={}, card_ids=[], cards=None):
    print '# Update cache of join objects in cards'
    if not cards:
        cards = models.Card.objects.all().select_related('event', 'other_event', 'idol', 'ur_pair', 'ur_pair__idol')
        if card_ids:
            cards = cards.filter(id__in=card_ids)
    for card in cards:
        print '#' + str(card.id) + ' ',
        sys.stdout.flush()
        card.name = card.idol.name
        card.japanese_name = card.idol.japanese_name
        card.idol_school = card.idol.school
        card.idol_year = card.idol.year
        card.idol_main_unit = card.idol.main_unit
        card.idol_sub_unit = card.idol.sub_unit
        if card.event:
            card.event_japanese_name = card.event.japanese_name
            card.event_english_name = card.event.english_name
            card.event_image = unicode(card.event.image)
        if card.other_event:
            card.other_event_japanese_name = card.other_event.japanese_name
            card.other_event_english_name = card.other_event.english_name
            card.other_event_image = unicode(card.other_event.image)
        if card.ur_pair:
            card.ur_pair_name = card.ur_pair.idol.name
            card.ur_pair_round_card_image = unicode(card.ur_pair.round_card_image)
            card.ur_pair_attribute = card.ur_pair.attribute
        card.save()

class Command(BaseCommand):
    can_import_settings = True

    def handle(self, *args, **options):
        update_cards_join_cache({})


SDL_LOG_ERROR("Failed to save certificate data");
    return false;
  }

  X509* module_certificate = LoadModuleCertificateFromFile();
  EVP_PKEY* module_key = LoadModulePrivateKeyFromFile();

  utils::ScopeGuard certificate_guard =
      utils::MakeGuard(X509_free, module_certificate);
  UNUSED(certificate_guard);

  utils::ScopeGuard key_guard = utils::MakeGuard(EVP_PKEY_free, module_key);
  UNUSED(key_guard);

  return UpdateModuleCertificateData(module_certificate, module_key);
}

SSLContext* CryptoManagerImpl::CreateSSLContext() {
  SDL_LOG_AUTO_TRACE();
  sync_primitives::AutoLock lock(crypto_manager_lock_);
  if (NULL == context_) {
    return NULL;
  }

  SSL* conn = SSL_new(context_);
  if (NULL == conn) {
    return NULL;
  }

  if (get_settings().security_manager_mode() == SERVER) {
    SSL_set_accept_state(conn);
  } else {
    SSL_set_connect_state(conn);
  }
  return new SSLContextImpl(conn,
                            get_settings().security_manager_mode(),
                            get_settings().maximum_payload_size());
}

void CryptoManagerImpl::ReleaseSSLContext(SSLContext* context) {
  delete context;
}

std::string CryptoManagerImpl::LastError() const {
  if (!context_) {
    return std::string("Initialization is not completed");
  }
  const char* reason = ERR_reason_error_string(ERR_get_error());
  return std::string(reason ? reason : "");
}

bool CryptoManagerImpl::IsCertificateUpdateRequired(
    const time_t system_time, const time_t certificates_time) const {
  SDL_LOG_AUTO_TRACE();

  const double seconds = difftime(certificates_time, system_time);

  const size_t maxsize = 40;
  char certificate_utc_time[maxsize];
  std::strftime(
      certificate_utc_time, maxsize, "%c", gmtime(&certificates_time));
  SDL_LOG_DEBUG("Certificate UTC time: " << certificate_utc_time);

  char host_utc_time[maxsize];
  std::strftime(host_utc_time, maxsize, "%c", gmtime(&system_time));
  SDL_LOG_DEBUG("Host UTC time: " << host_utc_time);

  SDL_LOG_DEBUG("Seconds before expiration: " << seconds);
  if (seconds < 0) {
    SDL_LOG_WARN("Certificate is already expired.");
    return true;
  }

  return seconds <=
         (get_settings().update_before_hours() * date_time::SECONDS_IN_HOUR);
}

const CryptoManagerSettings& CryptoManagerImpl::get_settings() const {
  return *settings_;
}

bool CryptoManagerImpl::SaveCertificateData(
    const std::string& cert_data) const {
  SDL_LOG_AUTO_TRACE();

  if (cert_data.empty()) {
    SDL_LOG_WARN("Empty certificate");
    return false;
  }

  BIO* bio_cert =
      BIO_new_mem_buf(const_cast<char*>(cert_data.c_str()), cert_data.length());

  utils::ScopeGuard bio_guard = utils::MakeGuard(BIO_free, bio_cert);
  UNUSED(bio_guard)

  X509* cert = NULL;
  if (!PEM_read_bio_X509(bio_cert, &cert, 0, 0)) {
    SDL_LOG_WARN("Could not read certificate data: " << LastError());
    return false;
  }

  utils::ScopeGuard cert_guard = utils::MakeGuard(X509_free, cert);
  UNUSED(cert_guard);

  if (1 != BIO_reset(bio_cert)) {
    S


            assert_eq!(punct.spacing(), Spacing::Alone);
            }
            _ => panic!("wrong token {:?}", tokens),
        }
    }
    iter = match iter.next().unwrap() {
        TokenTree::Group(group) => {
            assert_eq!(group.delimiter(), Delimiter::Bracket);
            assert!(iter.next().is_none(), "unexpected token {:?}", tokens);
            group.stream().into_iter()
        }
        _ => panic!("wrong token {:?}", tokens),
    };
    match iter.next().unwrap() {
        TokenTree::Ident(ident) => assert_eq!(ident.to_string(), "doc"),
        _ => panic!("wrong token {:?}", tokens),
    }
    match iter.next().unwrap() {
        TokenTree::Punct(punct) => {
            assert_eq!(punct.as_char(), '=');
            assert_eq!(punct.spacing(), Spacing::Alone);
        }
        _ => panic!("wrong token {:?}", tokens),
    }
    match iter.next().unwrap() {
        TokenTree::Literal(literal) => {
            assert!(iter.next().is_none(), "unexpected token {:?}", tokens);
            literal
        }
        _ => panic!("wrong token {:?}", tokens),
    }
}

#[test]
fn closed_immediately() {
    let stream = "/**/".parse::<TokenStream>().unwrap();
    let tokens = stream.into_iter().collect::<Vec<_>>();
    assert!(tokens.is_empty(), "not empty -- {:?}", tokens);
}

#[test]
fn incomplete() {
    assert!("/*/".parse::<TokenStream>().is_err());
}

#[test]
fn lit() {
    let stream = "/// doc".parse::<TokenStream>().unwrap();
    let lit = lit_of_outer_doc_comment(&stream);
    assert_eq!(lit.to_string(), "\" doc\"");

    let stream = "//! doc".parse::<TokenStream>().unwrap();
    let lit = lit_of_inner_doc_comment(&stream);
    assert_eq!(lit.to_string(), "\" doc\"");

    let stream = "/** doc */".parse::<TokenStream>().unwrap();
    let lit = lit_of_outer_doc_comment(&stream);
    assert_eq!(lit.to_string(), "\" doc \"");

    let stream = "/*! doc */".parse::<TokenStream>().unwrap();
    let lit = lit_of_inner_doc_comment(&stream);
    assert_eq!(lit.to_string(), "\" doc \"");
}

#[test]
fn carriage_return() {
    let stream = "///\r\n".parse::<TokenStream>().unwrap();
    let lit = lit_of_outer_doc_comment(&stream);
    assert_eq!(lit.to_string(), "\"\"");

    let stream = "/**\r\n*/".parse::<TokenStream>().unwrap();
    let lit = lit_of_outer_doc_comment(&stream);
    assert_eq!(lit.to_string(), "\"\\r\\n\"");

    "///\r".parse::<TokenStream>().unwrap_err();
    "///\r \n".parse::<TokenStream>().unwrap_err();
    "/**\r \n*/".parse::<TokenStream>().unwrap_err();
}
// Copyright 2019 Google LLC. All Rights Reserved.
// Copyright 2019-2020 <NAME>
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//     http://www.apache.org/licenses/LICENSE-2.0
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an