 intent.putExtra(SOLAR_CHARGER_DATA_VALUE, value)
        service.sendBroadcast(intent)
    }

    fun discard(size: Int) {
        if (readBuffer.size >= size) {
            readBuffer = byteArrayOf()
        } else {
            readBuffer = readBuffer.sliceArray(size..readBuffer.size)
        }
    }

    fun onBatteryMonitorData(data: ByteArray) {
        Log.d(tag, "onBatteryMonitorData ${data.size} bytes ${data.toHexString()}")
        if (data.size == 0) {
            return
        }
        readBuffer += data

        // The Junctek battery monitor uses some weird format where the data
        // is like bb2043c1052954d825ee.
        // Each field/data is separated by hex encoded codes (eg c1, d8)
        // Must convert to hex string (little endian) or toDouble uses incorrect base (16)
        // Might also come in chunks after a query is sent like
        // bb1516d61186d710eebb0600c1015930d840eebb
        // 925430d5331782d203477174d4124134f385eebb
        // 0615c1016328d863eebb925431d5331784d20347
        // 7178d4124135f393eebb00f62655c00615c101d1
        // 925431d51516d61186d7016328d800d999d03317
        // 84d203299635d303477178d400c200c301c401f7
        // 00c500c700c600c800c95000b00255b10100b201
        // 00b30100b40100f500b501b600b700e400e500e6
        // 00e720e820e91152f000f100f800f9240801f212
        // 4135f300b801b94140e00964e10137e20255e345
        // eebb01d199d058eebb0629c1016699d899ee
        while (readBuffer.size > 0) {
            val start = readBuffer.indexOfAny(
                0xbb.toByte(),
                0xaa.toByte()
            )
            val end = readBuffer.indexOf(0xee.toByte())

            // Got end of packet but missing start
            if (end >= 0 && end <= start) {
                discard(end) // Discard what was used
                break;
            } else if (end < 0 || start < 0) {
                break; // Need to read more
            }
            assert(start >= 0 && end > start)
            val packet = readBuffer.sliceArray(start..end)
            discard(end)// Discard what was used
            // Log.d(tag, "Read buffer size remaining ${readBuffer.size}")
            var entry = ByteArray(0)
            // Log.d(tag, "onBatteryMonitorData found packet ${packet.size} bytes ${packet.toHexString()}")
            var lastVoltage = 0.0
            val history: MutableList<VoltageCurrent> = mutableListOf()
            val records: MutableList<BatteryMonitorHistoryRecord> = mutableListOf()

            for (c in packet.slice(1..packet.size - 1)) {
                // They treat anything with a hex character as a code
                if ((c.toUByte() and 0xF0.toUByte() >= 0xA0.toUByte()) || (c.toUByte() and 0x0F.toUByte() >= 0xA.toUByte())) {
                    val type = BatteryMonitorDataType.fromByte(c)
                    Log.i(
                        tag,
                        "Found packet type ${c.toHexString()} ${type?.name} with data ${entry.toHexString()}"
                    )
                    val intent = Intent(ACTION_BATTERY_MONITOR_DATA_AVAILABLE)

                    when (type) {
                        BatteryMonitorDataType.Voltage,
                        BatteryMonitorDataType.Current,
                        BatteryMonitorDataType.Power,
                        BatteryMonitorDataType.TotalChargeEnergy,
                        BatteryMonitorDataType.TotalDischargeEnergy


Test("deprecation warning added")
	public deprecationWarningAdded() {
		SpyOn(Warner, "warn");

		AsyncTestDecorator("")({}, "");

		Expect(Warner.warn).toHaveBeenCalledWith(
			"AsyncTest has been deprecated and will be removed in version 4.0.0. " +
				"Use the Test decorator instead."
		);
	}
}
/*
 * 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.
 */

/**
 * hasProperty checks whether some variable passed as `o` has the string
 * property `k`.
 *
 * @example
 * hasProperty({}, "id", "string"); // returns false
 * hasProperty({id: 8}, "id", "string"); // returns false
 * hasProperty({id: undefined}, "id", "string"); // returns false
 *
 * @param o The object to check.
 * @param k The key for which to check in the object.
 * @param type Specifies that `o.k` should be a string.
 * @returns Whether or not `o` has the string property `k`.
 */
export function hasProperty<T extends object, K extends PropertyKey>(o: T, k: K, type: "string"): o is T & Record<K, string>;
/**
 * hasProperty checks whether some variable passed as `o` has the number
 * property `k`.
 *
 * @example
 * hasProperty({}, "id", "number"); // returns false
 * hasProperty({id: 8}, "id", "number"); // returns true
 * hasProperty({id: undefined}, "id", "number"); // returns false
 *
 * @param o The object to check.
 * @param k The key for which to check in the object.
 * @param type Specifies that `o.k` should be a number.
 * @returns Whether or not `o` has the number property `k`.
 */
export function hasProperty<T extends object, K extends PropertyKey>(o: T, k: K, type: "number"): o is T & Record<K, number>;
/**
 * hasProperty checks whether some variable passed as `o` has the boolean
 * property `k`.
 *
 * @example
 * hasProperty({}, "id", "boolean"); // returns false
 * hasProperty({id: 8}, "id", "boolean"); // returns false
 * hasProperty({id: undefined}, "id", "boolean"); // returns false
 * hasProperty({id: true}, "id", "boolean"); // returns true
 *
 * @param o The object to check.
 * @param k The key for which to check in the object.
 * @param type Specifies that `o.k` should be a boolean.
 * @returns Whether or not `o` has the boolean property `k`.
 */
export function hasProperty<T extends object, K extends PropertyKey>(o: T, k: K, type: "boolean"): o is T & Record<K, boolean>;
/**
 * hasProperty checks whether some variable passed as `o` has the Array property
 * `k`.
 *
 * @example
 * hasProperty({}, "id", "Array"); // returns false
 * hasProperty({id: 8}, "id", "Array"); // returns false
 * hasProperty({id: undefined}, "id", "Array"); // returns false
 * hasProperty({id: []}, "id", "Array"); // returns true
 * hasProperty({id: [undefined, null


ab>(grab: *mut weston_keyboard_grab) {
    let wrapper = &mut *wl_container_of!(((*grab).interface), KeyboardGrabWrapper<T>, base);
    wrapper.user.cancel(KeyboardRef::from_ptr_mut((*grab).keyboard));
}

unsafe fn noop_destroy(_: *mut weston_keyboard) {}

foreign_type! {
    type CType = weston_keyboard;
    fn drop = noop_destroy;
    pub struct Keyboard;
    pub struct KeyboardRef;
}

impl KeyboardRef {
    obj_accessors!(SeatRef | seat seat_mut = |&this| { (*this.as_ptr()).seat });
    obj_accessors!(opt SurfaceRef | focus focus_mut = |&this| { (*this.as_ptr()).focus });
    prop_accessors!(u32 | focus_serial, grab_key, grab_serial);
    prop_accessors!(ptr wl_signal | focus_signal);

    pub fn set_focus(&mut self, surface: &SurfaceRef) {
        unsafe { weston_keyboard_set_focus(self.as_ptr(), surface.as_ptr()); }
    }

    pub fn set_locks(&mut self, mask: KeyboardLock, value: KeyboardLock) -> bool {
        unsafe { weston_keyboard_set_locks(self.as_ptr(), mask.bits(), value.bits()) == 0 }
    }

    pub fn has_focus_resource(&self) -> bool {
        unsafe { weston_keyboard_has_focus_resource(self.as_ptr()) }
    }

    pub fn send_key(&mut self, time: &libc::timespec, key: u32, state: KeyState) {
        unsafe { weston_keyboard_send_key(self.as_ptr(), time, key, state.to_raw()); }
    }

    pub fn send_modifiers(&mut self, serial: u32, mods_depressed: KeyboardModifier,
                      mods_latched: KeyboardModifier, mods_locked: KeyboardModifier, group: u32) {
        unsafe { weston_keyboard_send_modifiers(self.as_ptr(), serial, mods_depressed.bits(), mods_latched.bits(), mods_locked.bits(), group); }
    }

    pub fn start_grab<T: KeyboardGrab>(&mut self, grab: T) {
        // XXX: leaks the wrapper
        let silly_wrapper = Box::new(weston_keyboard_grab {
            interface: unsafe { grab.into_weston() },
            keyboard: self.as_ptr(), // weston will set that to the same value lol
        });
        unsafe { weston_keyboard_start_grab(self.as_ptr(), Box::into_raw(silly_wrapper)); }
    }

    pub fn end_grab(&mut self) {
        unsafe { weston_keyboard_end_grab(self.as_ptr()); }
    }
}
<gh_stars>1-10
use rrt_lib::data::{ExternalEvent, LifetimeTrait, ResourceAccessPoint, Owner, Function, VisualizationData, Visualizable};
use rrt_lib::svg_frontend::svg_generation;
use std::collections::BTreeMap;

fn main() {
    let x = ResourceAccessPoint::Owner(Owner {
        hash: 1,
        name: String::from("x"),
        is_mut: false,
        lifetime_trait: LifetimeTrait::Copy
    });
    let y = ResourceAccessPoint::Owner(Owner {
        hash: 2,
        name: String::from("y"),
        is_mut: false,
        lifetime_trait: LifetimeTrait::None
    });

    let println_func = ResourceAccessPoint::Function(Function {
        hash: 3,
        name: String::from("println!()"),
    });
    let mut vd = VisualizationData {
        timelines: BTreeMap::new(),
        external


ystemDns,appendSystemDns);

@override
String toString() {
  return 'NetworkProps(systemProxy: $systemProxy, bypassDomain: $bypassDomain, routeMode: $routeMode, autoSetSystemDns: $autoSetSystemDns, appendSystemDns: $appendSystemDns)';
}

}

/// @nodoc
abstract mixin class $NetworkPropsCopyWith<$Res>  {
  factory $NetworkPropsCopyWith(NetworkProps value, $Res Function(NetworkProps) _then) = _$NetworkPropsCopyWithImpl;
@useResult
$Res call({
 bool systemProxy, List<String> bypassDomain, RouteMode routeMode, bool autoSetSystemDns, bool appendSystemDns
});

}
/// @nodoc
class _$NetworkPropsCopyWithImpl<$Res>
    implements $NetworkPropsCopyWith<$Res> {
  _$NetworkPropsCopyWithImpl(this._self, this._then);

  final NetworkProps _self;
  final $Res Function(NetworkProps) _then;

/// Create a copy of NetworkProps
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @override $Res call({Object? systemProxy = null,Object? bypassDomain = null,Object? routeMode = null,Object? autoSetSystemDns = null,Object? appendSystemDns = null,}) {
  return _then(_self.copyWith(
systemProxy: null == systemProxy ? _self.systemProxy : systemProxy // ignore: cast_nullable_to_non_nullable
as bool,bypassDomain: null == bypassDomain ? _self.bypassDomain : bypassDomain // ignore: cast_nullable_to_non_nullable
as List<String>,routeMode: null == routeMode ? _self.routeMode : routeMode // ignore: cast_nullable_to_non_nullable
as RouteMode,autoSetSystemDns: null == autoSetSystemDns ? _self.autoSetSystemDns : autoSetSystemDns // ignore: cast_nullable_to_non_nullable
as bool,appendSystemDns: null == appendSystemDns ? _self.appendSystemDns : appendSystemDns // ignore: cast_nullable_to_non_nullable
as bool,
  ));
}

}

/// Adds pattern-matching-related methods to [NetworkProps].
extension NetworkPropsPatterns on NetworkProps {
/// A variant of `map` that fallback to returning `orElse`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return orElse();
/// }
/// ```

@optionalTypeArgs TResult maybeMap<TResult extends Object?>(TResult Function( _NetworkProps value)?  $default,{required TResult orElse(),}){
final _that = this;
switch (_that) {
case _NetworkProps() when $default != null:
return $default(_that);case _:
  return orElse();

}
}
/// A `switch`-like method, using callbacks.
///
/// Callbacks receives the raw object, upcasted.
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case final Subclass2 value:
///     return ...;
/// }
/// ```

@optionalTypeArgs TResult map<TResult extends Object?>(TResult Function( _NetworkProps value)  $default,){
final _that = this;
switch (_that) {
case _NetworkProps():
return $default(_that);case _:
  throw StateError('Unexpected subclass');

}
}
/// A variant of `map` that fallback to returning `null`.
///
/// It is equivalent to doing:
/// ```dart
/// switch (sealedClass) {
///   case final Subclass value:
///     return ...;
///   case _:
///     return null;
/// }
/// ```

@optionalTypeArgs TResult? mapOrNull<TResult extends Object?>(TResult? Function( _


dfGoogleFonts._(
      'https://fonts.gstatic.com/s/notoserifdisplay/v24/buEPppa9f8_vkXaZLAgP0G5Wi6QmA1QwcLRCOrN8uo7t6FBJOJTQit-N33sQOk-VoZlOYjEfg-zCmf4.ttf',
      'NotoSerifDisplay-BlackItalic',
    );
    return font.getFont();
  }

  /// @nodoc
  /// Noto Serif Dogra regular
  static Future<Font> notoSerifDograRegular() {
    const font = PdfGoogleFonts._(
      'https://fonts.gstatic.com/s/notoserifdogra/v23/MQpP-XquKMC7ROPP3QOOlm7xPu3fGy63IbPzkns.ttf',
      'NotoSerifDogra-Regular',
    );
    return font.getFont();
  }

  /// @nodoc
  /// Noto Serif Ethiopic 100
  static Future<Font> notoSerifEthiopicThin() {
    const font = PdfGoogleFonts._(
      'https://fonts.gstatic.com/s/notoserifethiopic/v30/V8mjoR7-XjwJ8_Au3Ti5tXj5Rd83frpWLK4d-taxqWw2HMWjDxBAg5S_0QsrggxCzSQjkaO9UVLyiw.ttf',
      'NotoSerifEthiopic-Thin',
    );
    return font.getFont();
  }

  /// @nodoc
  /// Noto Serif Ethiopic 200
  static Future<Font> notoSerifEthiopicExtraLight() {
    const font = PdfGoogleFonts._(
      'https://fonts.gstatic.com/s/notoserifethiopic/v30/V8mjoR7-XjwJ8_Au3Ti5tXj5Rd83frpWLK4d-taxqWw2HMWjDxBAg5S_0QsrggxCTSUjkaO9UVLyiw.ttf',
      'NotoSerifEthiopic-ExtraLight',
    );
    return font.getFont();
  }

  /// @nodoc
  /// Noto Serif Ethiopic 300
  static Future<Font> notoSerifEthiopicLight() {
    const font = PdfGoogleFonts._(
      'https://fonts.gstatic.com/s/notoserifethiopic/v30/V8mjoR7-XjwJ8_Au3Ti5tXj5Rd83frpWLK4d-taxqWw2HMWjDxBAg5S_0QsrggxCkyUjkaO9UVLyiw.ttf',
      'NotoSerifEthiopic-Light',
    );
    return font.getFont();
  }

  /// @nodoc
  /// Noto Serif Ethiopic regular
  static Future<Font> notoSerifEthiopicRegular() {
    const font = PdfGoogleFonts._(
      'https://fonts.gstatic.com/s/notoserifethiopic/v30/V8mjoR7-XjwJ8_Au3Ti5tXj5Rd83frpWLK4d-taxqWw2HMWjDxBAg5S_0QsrggxCzSUjkaO9UVLyiw.ttf',
      'NotoSerifEthiopic-Regular',
    );
    return font.getFont();
  }

  /// @nodoc
  /// Noto Serif Ethiopic 500
  static Future<Font> notoSerifEthiopicMedium() {
    const font = PdfGoogleFonts._(
      'https://fonts.gstatic.com/s/notoserifethiopic/v30/V8mjoR7-XjwJ8_Au3Ti5tXj


# WITH keyword

with open(
    "C:\\Users\\hp\\Desktop\\PythonCourse\\12_File Handling\\hello.txt", "r"
) as f:
    print(f.read())

# the file is closed so we will get error
print(f.read)


set(name);
		theCharacter.setPCAttribute(PCStringKey.PLAYERSNAME, name);
	}

	@Override
	public boolean isQualifiedFor(PCClass c)
	{
		return theCharacter.isQualified(c);
	}

	@Override
	public UIDelegate getUIDelegate()
	{
		return delegate;
	}

	/**
	 * Save the character to disc using its filename. Note this method is not
	 * part of the CharacterFacade and should only be used by the
	 * ChracterManager class.
	 */
	public void save()
	{
		GameMode mode = dataSet.getGameMode();
		List<Campaign> campaigns = ListFacades.wrap(dataSet.getCampaigns());
		(new PCGIOHandler()).write(theCharacter, mode, campaigns, file.get());
		theCharacter.setDirty(false);
	}

	@Override
	public boolean isAutomatic(Language language)
	{
		if (autoLanguagesCache == null)
		{
			autoLanguagesCache = charDisplay.getAutoLanguages();
		}
		return autoLanguagesCache.contains(language);
	}

	@Override
	public boolean isRemovable(Language language)
	{
		if (isAutomatic(language))
		{
			return false;
		}
		if (currBonusLangs.contains(language))
		{
			boolean allowBonusLangAfterFirst = Globals.checkRule(RuleConstants.INTBONUSLANG);
			boolean atFirstLvl = theCharacter.getTotalLevels() <= 1;
			return allowBonusLangAfterFirst || atFirstLvl;
		}

		return true;
	}

	@Override
	public CharacterLevelsFacade getCharacterLevelsFacade()
	{
		return charLevelsFacade;
	}

	@Override
	public DescriptionFacade getDescriptionFacade()
	{
		return descriptionFacade;
	}

	@Override
	public void setXP(final int xp)
	{
		if (xp == currentXP.get())
		{
			// We've already processed this change, most likely via the adjustXP method
			return;
		}
		theCharacter.setXP(xp);
	}

	@Override
	public ReferenceFacade<Integer> getXPRef()
	{
		return currentXP;
	}

	@Override
	public void adjustXP(final int xp)
	{
		int currVal = currentXP.get();
		int newVal = currVal + xp;
		theCharacter.setXP(newVal);
		checkForNewLevel();
	}

	@Override
	public ReferenceFacade<Integer> getXPForNextLevelRef()
	{
		return xpForNextlevel;
	}

	@Override
	public ReferenceFacade<String> getXPTableNameRef()
	{
		return xpTableName;
	}

	@Override
	public void setXPTable(String newTable)
	{

		xpTableName.set(newTable);
		theCharacter.setXPTable(newTable);
		checkForNewLevel();
	}

	private void checkForNewLevel()
	{
		currentXP.set(theCharacter.getXP());
		xpForNextlevel.set(charDisplay.minXPForNextECL());

		if (theCharacter.getXP() >= charDisplay.minXPForNextECL())
		{
			delegate.showInfoMessage(Constants.APPLICATION_NAME, SettingsHandler.getGameAsProperty().get().getLevelUpMessage());
		}
		updateLevelTodo();
	}

	@Override
	public ReferenceFacade<String> getCharacterTypeRef()
	{
		return characterType;
	}

	@Override
	public void setCharacterType(String newType)
	{

		characterType.set(newType);
		theCharacter.calcActiveBonuses();

		// This can affect traits mainly.
		characterAbilities.rebuildAbilityLists();
	}

	@Override
	public ReferenceFacade<String> getPreviewSheetRef()
	{
		return previewSheet;
	}

	@Override
	public void setPreviewSheet(String newSheet)
	{
		previewSheet.set(newSheet);
		theCharacter.setPreviewSheet(newSheet);
	}

	@Override
	public ReferenceFacade<SkillFilter> getSkillFilterRef


map[string]chan Message
	admins     map[string]chan Message
	pools      map[string]map[string]string
	updatePool chan string
}

//revive:disable:flag-parameter,function-length,cognitive-complexity,cyclomatic
func (s *server) Register(userID string, isAdmin bool, currentSlide int64) (ch chan Message, err error) {
	muWS.Lock()
	defer muWS.Unlock()
	ch = make(chan Message)
	if isAdmin {
		s.admins[userID] = ch
		log.Println("registered admin", userID)
	} else {
		s.clients[userID] = ch
		log.Println("registered", userID)
	}

	s.clients[userID] = ch
	go func() { //revive:disable:datarace
		ch <- Message{
			ID:     userID,
			Admin:  isAdmin,
			Author: "SERVER",
			// Slides: data.Presentation(),
			Slide: int(currentSlide),
		}
		s.BroadcastPoolsToID(userID)
	}()
	return ch, nil
}

func (s *server) Unregister(id string) {
	muWS.Lock()
	defer muWS.Unlock()
	log.Println("unregistered", id)
	delete(s.clients, id)
	delete(s.admins, id)
}

func (s *server) Broadcast(msg Message) {
	muWS.RLock()
	defer muWS.RUnlock()
	// log.Println("broadcast", msg.Author)
	for _, ch := range s.admins {
		go func(ch chan Message, msg Message) {
			ch <- msg
		}(ch, msg)
	}
	for _, ch := range s.clients {
		go func(ch chan Message, msg Message) {
			ch <- msg
		}(ch, msg)
	}
}

func (s *server) BroadcastSingle(msg Message, id string) {
	muWS.RLock()
	defer muWS.RUnlock()
	// log.Println("broadcast", msg.Author)
	ch, ok := s.admins[id]
	if ok {
		go func(ch chan Message, msg Message) {
			ch <- msg
		}(ch, msg)
		return
	}

	ch, ok = s.clients[id]
	if ok {
		go func(ch chan Message, msg Message) {
			ch <- msg
		}(ch, msg)
	}
}

func (s *server) BroadcastAdmins(msg Message) {
	muWS.RLock()
	defer muWS.RUnlock()
	for _, ch := range s.admins {
		go func(ch chan Message, msg Message) {
			ch <- msg
		}(ch, msg)
	}
}

func (s *server) Send(id string, msg Message) {
	muWS.RLock()
	defer muWS.RUnlock()
	ch, ok := s.clients[id]
	if ok {
		ch <- msg
	}
}

func (s *server) Pool(msg Message) {
	muWS.RLock()
	defer muWS.RUnlock()
	pool, ok := s.pools[msg.Pool]
	if ok {
		if pool[msg.Author] == msg.Value {
			return
		}
		pool[msg.Author] = msg.Value
	} else {
		s.pools[msg.Pool] = make(map[string]string)
		s.pools[msg.Pool][msg.Author] = msg.Value
	}
	// go s.BroadcastPool(msg.Pool)
	go func() {
		s.updatePool <- msg.Pool
	}()
}

func (s *server) RateLimitBroadcastPool() {
	poolsToUpdate := make(map[string]struct{})
	for {
		select {
		case pool := <-s.updatePool:
			poolsToUpdate[pool] = struct{}{}
		case <-time.After(150 * time.Millisecond):
			if len(poolsToUpdate) > 0 {
				for pool := range poolsToUpdate {
					go s.BroadcastPool(pool)
				}
				pool


drm_fd);
                close(drm_fd);
                send_msg(sock, -1i32, 0 as *mut libc::c_void, 0i32 as size_t);
            }
            3 => {
                running = 0i32 != 0;
                send_msg(sock, -1i32, 0 as *mut libc::c_void, 0i32 as size_t);
            }
            _ => { }
        }
    }
    close(sock);
}
#[no_mangle]
pub unsafe extern "C" fn direct_ipc_open(mut sock: libc::c_int,
                                         mut path: *const libc::c_char)
 -> libc::c_int {
    let mut msg: msg =
        { let mut init = msg{type_0: MSG_OPEN, path: [0; 256],}; init };
    snprintf(msg.path.as_mut_ptr(),
             ::std::mem::size_of::<[libc::c_char; 256]>() as libc::c_ulong,
             b"%s\x00" as *const u8 as *const libc::c_char, path);
    send_msg(sock, -1i32, &mut msg as *mut msg as *mut libc::c_void,
             ::std::mem::size_of::<msg>() as libc::c_ulong);
    let mut fd: libc::c_int = 0;
    let mut err: libc::c_int = 0;
    let mut ret: libc::c_int = 0;
    let mut retry: libc::c_int = 0i32;
    loop  {
        ret =
            recv_msg(sock, &mut fd,
                     &mut err as *mut libc::c_int as *mut libc::c_void,
                     ::std::mem::size_of::<libc::c_int>() as libc::c_ulong) as
                libc::c_int;
        if !(ret == 0i32 &&
                 { let fresh0 = retry; retry = retry + 1; (fresh0) < 3i32 }) {
            break ;
        }
    }
    return if err != 0 { -err } else { fd };
}
#[no_mangle]
pub unsafe extern "C" fn direct_ipc_setmaster(mut sock: libc::c_int,
                                              mut fd: libc::c_int) {
    let mut msg: msg =
        { let mut init = msg{type_0: MSG_SETMASTER, path: [0; 256],}; init };
    send_msg(sock, fd, &mut msg as *mut msg as *mut libc::c_void,
             ::std::mem::size_of::<msg>() as libc::c_ulong);
    recv_msg(sock, 0 as *mut libc::c_int, 0 as *mut libc::c_void,
             0i32 as size_t);
}
#[no_mangle]
pub unsafe extern "C" fn direct_ipc_dropmaster(mut sock: libc::c_int,
                                               mut fd: libc::c_int) {
    let mut msg: msg =
        { let mut init = msg{type_0: MSG_DROPMASTER, path: [0; 256],}; init };
    send_msg(sock, fd, &mut msg as *mut msg as *mut libc::c_void,
             ::std::mem::size_of::<msg>() as libc::c_ulong);
    recv_msg(sock, 0 as *mut libc::c_int, 0 as *mut libc::c_void,
             0i32 as size_t);
}
#[no_mangle]
pub unsafe extern "C" fn direct_ipc_finish(mut sock: libc::c_int,
                                           mut pid: pid_t) {
    let mut msg: msg =
        { let mut init = msg{type_0: MSG_END, path: [0; 256],}; init };
    send_msg(sock, -1i32, &mut msg as *mut msg as *mut libc::c_void,
             ::std::mem::size_of::<msg>() as libc::c_ulong);
    recv_msg(sock, 0 as *mut libc::c_int, 0 as *mut libc::c_void,
             0i32 as size_t);
    waitpid(pid, 0 as *mut libc::c_int, 0i32);
}
#[no_mangle]
pub unsafe extern "C" fn direct_ipc_init(mut pid_out: *mut pid_t)
 -> libc::c_int {
    if !have_permissions()


ex: uint32(htlc.localOutputIndex),
				}

				htlcFee := HtlcSuccessFee(chanType, feePerKw)
				outputAmt := htlc.BtcAmount.ToSatoshis() - htlcFee

				successTx, err := CreateHtlcSuccessTx(
					chanType, isLocalInitiator, op,
					outputAmt,htlc.AssetAmount,htlc.AssetID, uint32(localChanCfg.CsvDelay),
					leaseExpiry, keyRing.RevocationKey,
					keyRing.ToLocalKey,
				)
				if err != nil {
					return nil, err
				}

				//hashCache := txscript.NewTxSigHashes(successTx)
				//sigHash, err := txscript.CalcWitnessSigHash(
				//	htlc.ourWitnessScript, hashCache,
				//	sigHashType, successTx, 0,
				//	int64(htlc.BtcAmount.ToSatoshis()),
				//)
				sigHash, err :=txscript.CalcSignatureHash(htlc.ourWitnessScript,txscript.SigHashAll,successTx,0)
				if err != nil {
					return nil, err
				}

				return sigHash, nil
			}

			// Make sure there are more signatures left.
			if i >= len(htlcSigs) {
				return nil, fmt.Errorf("not enough HTLC " +
					"signatures")
			}

			// With the sighash generated, we'll also store the
			// signature so it can be written to disk if this state
			// is valid.
			sig, err = htlcSigs[i].ToSignature()
			if err != nil {
				return nil, err
			}
			htlc.sig = sig

		// Otherwise, if this is an outgoing HTLC, then we'll need to
		// generate a timeout transaction so we can verify the
		// signature presented.
		case localCommitmentView.outgoingHTLCIndex[outputIndex] != nil:
			htlc := localCommitmentView.outgoingHTLCIndex[outputIndex]

			htlcIndex = htlc.HtlcIndex

			sigHash = func() ([]byte, error) {
				op := wire.OutPoint{
					Hash:  txHash,
					Index: uint32(htlc.localOutputIndex),
				}

				htlcFee := HtlcTimeoutFee(chanType, feePerKw)
				outputAmt := htlc.BtcAmount.ToSatoshis() - htlcFee

				timeoutTx, err := CreateHtlcTimeoutTx(
					chanType, isLocalInitiator, op,
					outputAmt, htlc.AssetAmount, htlc.AssetID, htlc.Timeout,
					uint32(localChanCfg.CsvDelay), leaseExpiry,
					keyRing.RevocationKey, keyRing.ToLocalKey,
				)
				if err != nil {
					return nil, err
				}

				//hashCache := txscript.NewTxSigHashes(timeoutTx)
				//sigHash, err := txscript.CalcWitnessSigHash(
				//	htlc.ourWitnessScript, hashCache,
				//	sigHashType, timeoutTx, 0,
				//	int64(htlc.BtcAmount.ToSatoshis()),
				//)
				sigHash, err :=txscript.CalcSignatureHash(htlc.ourWitnessScript,txscript.SigHashAll,timeoutTx,0)
				if err != nil {
					return nil, err
				}

				return sigHash, nil
			}

			// Make sure there are more signatures left.
			if i >= len(htlcSigs) {
				return nil, fmt.Errorf("not enough HTLC " +
					"signatures")
			}

			// With the sighash generated, we'll also store the
			// signature so it can be written to disk if this state
			// is valid.
			sig, err = htlcSigs[i].ToSignature()
			if err != nil {
				return nil, err
			}
			htlc.sig = sig

		default:
			continue
		}

		verifyJobs = append(verifyJobs, VerifyJob{
			HtlcIndex: htlcIndex,
			PubKey:    keyRing.RemoteHtlcKey,


border-radius: 12px;',"ctrl-attrib.mapboxgl-compact":"min-height: 20px; padding: 0; margin: 10px; position: relative; background-color: #fff; border-radius: 3px 12px 12px 3px;","ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; right: 0","ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; left: 0","ctrl-bottom-left .mapboxgl-ctrl":"margin: 0 0 10px 10px; float: left;","ctrl-bottom-right .mapboxgl-ctrl":"margin: 0 10px 10px 0; float: right;","ctrl-attrib":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a:hover":"color: inherit; text-decoration: underline;","ctrl-attrib .mapbox-improve-map":"font-weight: bold; margin-left: 2px;","attrib-empty":"display: none;","ctrl-logo":'display:block; width: 21px; height: 21px; background-image: url(\'data:image/svg+xml;charset=utf-8,%3C?xml version="1.0" encoding="utf-8"?%3E %3Csvg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 21 21" style="enable-background:new 0 0 21 21;" xml:space="preserve"%3E%3Cg transform="translate(0,0.01)"%3E%3Cpath d="m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z" style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3Cpath d="M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpath d="M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c


      t.is(propVal, val);
      if (expectedVals.length === 0) {
        // subscription.unsubscribe();
        v.complete();
      }
    });

  test1.apiSource18 = 'Changed from owner';
  try {
    yassi.communicate('TestSource.apiSource18', 'change18', ['change on api request - requested', 'yassi', 'awesome']);
  } catch(err) {
    t.is(err.message, 'communicate is deprecated, please use castRequest instead');
  }

  return v;
});

test('Fail to change array item from listener', (t) => {
  class TestDest {
    @observe('TestSource.arraySource19') prop19;
  }

  const test1 = new TestSource();
  const test2 = new TestDest();
  const expectedValues = [[1, 2, 3], [1, 2, 3, 'a']];
  let v = new BehaviorSubject<any>(null);
  test2.prop19.subscribe((val: any[]) => {
    t.deepEqual(val, expectedValues.shift());
    if (val.length === 4) {
      // Now lets try to push something from the listener
      val.push('not affecting yassi');
    }
    if (expectedValues.length === 0) {
      v.complete();
    }
  });
  test1.arrayProp19.push('a');
  return v;
});

test('Fail to change object property from listener', (t) => {
  class TestDest {
    @observe('TestSource.objectSource20') prop20;
  }

  const test1 = new TestSource();
  const test2 = new TestDest();
  const expectedValues: any[] = [{a: 1, b:2}, {a: 2, b: 2}, {a: 2, b: 2, c: 3}];
  let v = new BehaviorSubject<any>(null);
  test2.prop20.subscribe((val: any) => {
    t.deepEqual(val, expectedValues.shift());
    if (val.a === 2) {
      // Now let's try to change the object from here, the listener
      val.a = 4;
    }
    if (val.c === 3) {
      val.d = 5;
    }
    if (expectedValues.length === 0) {
      v.complete();
    }
  });
  test1.objectProp20.a = 2;
  test1.objectProp20.c = 3;
  return v;
});

test('get a yassi property on demand without attaching to a local object', (t) => {
  const test1 = new TestSource();

  const sourceRef = yassi.get('TestSource.objectSource21');
  t.deepEqual(sourceRef, test1.objectProp21);
  sourceRef.getIt = false;
  t.is(test1.objectProp21.getIt, true);
});

test('observe false like values changes', (t) => {
  class TestDest {
    @observe('TestSource.srcBoolLikeProp22') prop22;
  }

  const test1 = new TestSource();
  const test2 = new TestDest();
  const expectedValues = [undefined, true, false, ''];
  let v = new BehaviorSubject<any>(null);
  test2.prop22.subscribe((val: boolean) => {
    t.is(val, expectedValues.shift());
    if (expectedValues.length === 0) {
      v.complete();
    }
  });
  test1.boolLikeProp22 = true;
  test1.boolLikeProp22 = false;
  test1.boolLikeProp22 = '';
  return v;
});

test('registerMiddleware for before yassit', (t) => {
  registerMiddleware('yassit', 'before');
  const test1 = new TestSource();
  t.is(test1.numProp2, 2);
  test1.numProp2 = 444;
  t.log('We should see the number 444 printed to console.');
});

test('register middleware for after yassit', (t) => {
  registerMiddleware('yassit', 'after',
    (proto: any, key: string, val: any) => console.log(`


/* ************************************************************************** */
/*                                                                            */
/*                                                        :::      ::::::::   */
/*   ft_str_is_alpha.c                                  :+:      :+:    :+:   */
/*                                                    +:+ +:+         +:+     */
/*                                                  +#+  +:+       +#+        */
/*                                                +#+#+#+#+#+   +#+           */
/*                                                     #+#    #+#             */
/*                                                    ###   ########.fr       */
/*                                                                            */
/* ************************************************************************** */

int	ft_str_is_alpha(char *str)
{
	char	j;
	int		i;

	i = 0;
	while (str[i] != '\0')
	{
		j = str[i];
		if (!((j >= 'a' && j <= 'z') || (j >= 'A' && j <= 'Z')))
			return (0);
		i++;
	}
	return (1);
}

/*
int	main(void)
{
	printf("hello: %d\n", ft_str_is_alpha("hello"));
	printf("HelloWorld: %d\n", ft_str_is_alpha("HelloWorld"));
	printf("HelloWorld123: %d\n", ft_str_is_alpha("Hello World 123"));

	return (0);
}
*/


   if (this.canCharge) {
      monster.registerShock(this.shockDurationTick, this.Atk * ratio * this.shockChargingPowerRatio, this, this.shockLeakingChance)
    }
    // this.extraEffect(monster)
  }

  override run(monsters: MonsterBase[]) {
    if (this.canShoot) {
      // 电击塔不调用父类shoot，故主动挂载gem钩子
      this.gemAttackHook(monsters)

      this.renderPermit = TeslaTower.shockRenderFrames

      monsters.forEach(mst => {
        if (this.inRange(mst)) {
          this.shock(mst)

          // 电击塔不调用父类shoot，故主动挂载gem钩子
          if (this.gem) {
            this.gem.hitHook(this as TowerBase, mst, monsters)
          }
        }
      })

      this.recordShootTime()
    }
  }

  /**
   * - circle-formula: (x - a)^2 + (y - b)^2 = r^2
   * - y = (r^2 - (x - a)^2)^0.5 + b || b - (r^2 - (x - a)^2)^0.5
   */
  calculateRandomCirclePoint() {
    const x = _.random(this.position.x - this.Rng, this.position.x + this.Rng, true)
    return {
      x,
      y:
        Math.random() > 0.5
          ? this.position.y - Math.pow(this.Rng * this.Rng - Math.pow(x - this.position.x, 2), 0.5)
          : Math.pow(this.Rng * this.Rng - Math.pow(x - this.position.x, 2), 0.5) + this.position.y
    }
  }

  renderLightening(ctx: CanvasRenderingContext2D) {
    const { x, y } = this.calculateRandomCirclePoint()
    TeslaTower.renderLighteningCop(ctx, this.position.x, this.position.y, x, y, this.Rng / 2)
  }

  rapidRender(ctx: CanvasRenderingContext2D, monsters: MonsterBase[]) {
    if (monsters.every(m => !this.inRange(m))) {
      return
    }
    if (this.renderPermit > 0) {
      this.renderPermit--

      ctx.strokeStyle = 'rgba(232,33,214,.5)'
      const t = ctx.lineWidth
      ctx.lineWidth = 1
      ctx.beginPath()
      for (let i = 0; i < 10; i++) {
        this.renderLightening(ctx)
      }
      ctx.closePath()
      ctx.stroke()
      ctx.lineWidth = t
    }

    ctx.strokeStyle = 'rgba(153,204,255,.5)'
    ctx.beginPath()
    this.monsterShockingRenderingQueue = this.monsterShockingRenderingQueue.filter(monsterShockingRendering => {
      TeslaTower.renderLighteningCop(ctx, ...monsterShockingRendering.args)
      return --monsterShockingRendering.time > 0
    })
    ctx.closePath()
    ctx.stroke()
  }
}

class BlackMagicTower extends TowerBase {
  private static rankUpDesc1 = '\n+ 伤害得到加强'
  private static rankUpDesc2 = '\n+ 伤害得到大幅加强'
  private static rankUpDesc3 = '\n+ 伤害得到大幅加强，每次攻击附加目标当前生命值 4% 的额外伤害'

  static override deniedGems = ['GogokOfSwiftness']

  private levelIdeFx = TowerManager.BlackMagicTower.ide!
  private levelIdrFx = TowerManager.BlackMagicTower.idr!
  private imprecationPower


5.1909529 15.021791 5.3771224 15.056641 5.5585938 L 7.921875 9.7207031 C 7.3985399 9.2778539 6.7320771 9 6 9 C 4.3549904 9 3 10.35499 3 12 C 3 13.64501 4.3549904 15 6 15 C 6.7320771 15 7.3985399 14.722146 7.921875 14.279297 L 15.056641 18.439453 C 15.021555 18.621514 15 18.808386 15 19 C 15 20.64501 16.35499 22 18 22 C 19.64501 22 21 20.64501 21 19 C 21 17.35499 19.64501 16 18 16 C 17.26748 16 16.601593 16.279328 16.078125 16.722656 L 8.9433594 12.558594 C 8.9782095 12.377122 9 12.190953 9 12 C 9 11.809047 8.9782095 11.622878 8.9433594 11.441406 L 16.078125 7.2792969 C 16.60146 7.7221461 17.267923 8 18 8 C 19.64501 8 21 6.6450096 21 5 C 21 3.3549904 19.64501 2 18 2 z M 18 4 C 18.564129 4 19 4.4358706 19 5 C 19 5.5641294 18.564129 6 18 6 C 17.435871 6 17 5.5641294 17 5 C 17 4.4358706 17.435871 4 18 4 z M 6 11 C 6.5641294 11 7 11.435871 7 12 C 7 12.564129 6.5641294 13 6 13 C 5.4358706 13 5 12.564129 5 12 C 5 11.435871 5.4358706 11 6 11 z M 18 18 C 18.564129 18 19 18.435871 19 19 C 19 19.564129 18.564129 20 18 20 C 17.435871 20 17 19.564129 17 19 C 17 18.435871 17.435871 18 18 18 z'/%3e %3c/g%3e %3c/svg%3e"},98413:n=>{n.exports="data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='16' viewBox='0 0 24 24'%3e %3cg class='jp-icon3' fill='%23616161'%3e %3cpath d='M21 3H3c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H3V5h10v4h8v10z'/%3e %3c/g%3e %3c/svg%3e"},89131:n=>{n.exports="data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3e %3cg class='jp-icon3 jp-icon-selectable' fill='%23616161'%3e %3cpath d='M7%2c5H21V7H7V5M7%2c13V11H21V13H7M4%2c4.5A1.5%2c1.5 0 0%2c1 5.5%2c6A1.5%2c1.5 0 0%2c1 4%2c7.5A1.5%2c1.5 0 0%2c1 2.5%2c6A1.5%2c1.5 0 0%2c1 4%2c4.5M4%2c10.5A1.5%2c1.5 0 0%2c1 5.5%2c12A1.5%2c1.5 0 0%2c1 4%2c13.5A


Gradient[i] * diffGradient[j];
                }
        }
        //else
        //  throw "BFGS: FAC not sufficiently positive";

        Array direction(P.currentValue().size());
        for (Size i = 0; i < P.currentValue().size(); ++i)
        {
            direction[i] = 0.0;
            for (Size j = 0; j < P.currentValue().size(); ++j)
                direction[i] -= inverseHessian_[i][j] * lineSearch_->lastGradient()[j];
        }

        return direction;
    }

}
/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */

/*
 Copyright (C) 2015 Cheng Li
 This file is part of QuantLib, a free-software/open-source library
 for financial quantitative analysts and developers - http://quantlib.org/

 QuantLib is free software: you can redistribute it and/or modify it
 under the terms of the QuantLib license.  You should have received a
 copy of the license along with this program; if not, please email
 <quantlib-dev@lists.sf.net>. The license is also available online at
 <http://quantlib.org/license.shtml>.

 This program 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 license for more details.
*/

/*! \file goldstein.hpp
    \brief Goldstein and Price line-search class
*/

#ifndef quantlib_optimization_goldstein_hpp
#define quantlib_optimization_goldstein_hpp

#include <ql/math/optimization/linesearch.hpp>

namespace QuantLib {

    class GoldsteinLineSearch : public LineSearch {
      public:
        //! Default constructor
        GoldsteinLineSearch(Real eps = 1e-8,
                            Real alpha = 0.05,
                            Real beta = 0.65,
                            Real extrapolation = 1.5)
        : LineSearch(eps), alpha_(alpha), beta_(beta), extrapolation_(extrapolation) {}

        //! Perform line search
        Real operator()(Problem& P,             // Optimization problem
                        EndCriteria::Type& ecType,
                        const EndCriteria&,
                        const Real t_ini);      // initial value of line-search step

      private:
        Real alpha_, beta_;
        Real extrapolation_;
    };

}

#endif
/* -*- mode: c++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */

/*
 Copyright (C) 2012 Ralph Schreyer
 Copyright (C) 2012 Mateusz Kapturski

 This file is part of QuantLib, a free-software/open-source library
 for financial quantitative analysts and developers - http://quantlib.org/

 QuantLib is free software: you can redistribute it and/or modify it
 under the terms of the QuantLib license.  You should have received a
 copy of the license along with this program; if not, please email
 <quantlib-dev@lists.sf.net>. The license is also available online at
 <http://quantlib.org/license.shtml>.

 This program 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 license for more details.
*/

/*! \file differentialevolution.hpp
    \brief Differential Evolution optimization method
*/

#ifndef quantlib_optimization_differential_evolution_hpp
#define quantlib_optimization_differential_evolution_hpp

#include <ql/math/optimization/constraint.hpp>
#include <ql/math/optimization/problem.hpp>
#include <ql/math/randomnumbers/mt19937uniformrng.hpp>

namespace QuantLib {

    //! Differential Evolution configuration object
    /*! The algorithm and strategy names are taken from here:

        Price, K., Storn, R., 1997. Differential Evolution -
        A Simple and Efficient Heuristic for Global Optimization
        over Continuous Spaces.
        Journal of Global Optimization, Kluwer Academic Publishers,
        1997, Vol. 11, pp. 341 - 359.

        There are seven basic strategies for creating mutant population
        currently implemented. Three basic crossover types are also
        available.

        Future development:
        1) base element type to be extracted
        2) L differences to be used instead of fixed number
        3) variou


t152;
	}
	if ( (*p) < 48 ) {
		if ( 45 <= (*p) && (*p) <= 46 )
			goto st152;
	} else if ( (*p) > 57 ) {
		if ( (*p) > 90 ) {
			if ( 97 <= (*p) && (*p) <= 122 )
				goto tr238;
		} else if ( (*p) >= 65 )
			goto tr238;
	} else
		goto tr238;
	goto tr207;
tr236:
#line 31 "src/vcf/vcf.ragel"
	{
        ParsePolicy::handle_token_begin(*this);
    }
#line 35 "src/vcf/vcf.ragel"
	{
        ParsePolicy::handle_token_char(*this, *p);
    }
	goto st153;
tr238:
#line 35 "src/vcf/vcf.ragel"
	{
        ParsePolicy::handle_token_char(*this, *p);
    }
	goto st153;
st153:
	if ( ++p == pe )
		goto _test_eof153;
case 153:
#line 4429 "inc/vcf/validator_detail_v43.hpp"
	switch( (*p) ) {
		case 43: goto tr238;
		case 61: goto tr239;
		case 95: goto tr238;
	}
	if ( (*p) < 48 ) {
		if ( 45 <= (*p) && (*p) <= 46 )
			goto tr238;
	} else if ( (*p) > 57 ) {
		if ( (*p) > 90 ) {
			if ( 97 <= (*p) && (*p) <= 122 )
				goto tr238;
		} else if ( (*p) >= 65 )
			goto tr238;
	} else
		goto tr238;
	goto tr207;
tr239:
#line 39 "src/vcf/vcf.ragel"
	{
        ParsePolicy::handle_token_end(*this);
    }
	goto st154;
st154:
	if ( ++p == pe )
		goto _test_eof154;
case 154:
#line 4457 "inc/vcf/validator_detail_v43.hpp"
	if ( (*p) == 34 )
		goto st155;
	goto tr197;
st155:
	if ( ++p == pe )
		goto _test_eof155;
case 155:
	switch( (*p) ) {
		case 34: goto tr228;
		case 92: goto tr242;
	}
	if ( 32 <= (*p) && (*p) <= 126 )
		goto tr241;
	goto tr226;
tr241:
#line 31 "src/vcf/vcf.ragel"
	{
        ParsePolicy::handle_token_begin(*this);
    }
#line 35 "src/vcf/vcf.ragel"
	{
        ParsePolicy::handle_token_char(*this, *p);
    }
	goto st156;
tr243:
#line 35 "src/vcf/vcf.ragel"
	{
        ParsePolicy::handle_token_char(*this, *p);
    }
	goto st156;
st156:
	if ( ++p == pe )
		goto _test_eof156;
case 156:
#line 4492 "inc/vcf/validator_detail_v43.hpp"
	switch( (*p) ) {
		case 34: goto tr231;
		case 92: goto tr244;
	}
	if ( 32 <= (*p) && (*p) <= 126 )
		goto tr243;
	goto tr226;
tr242:
#line 31 "src/vcf/vcf.ragel"
	{
        ParsePolicy::handle_token_begin(*this);
    }
#line 35 "src/vcf/vcf.ragel"
	{
        ParsePolicy::handle_token_char(*this, *p);
    }
	goto st157;
tr244:
#line 35 "src/vcf/vcf.ragel"
	{
        ParsePolicy::handle_token


destroy");
});
t.find(".m-btn").each(function(){
$(this).menubutton("destroy");
});
t.find(".s-btn").each(function(){
$(this).splitbutton("destroy");
});
t.find(".tooltip-f").tooltip("destroy");
};
function _23(_24){
$(_24).find("div.panel:visible,div.accordion:visible,div.tabs-container:visible,div.layout:visible").each(function(){
$(this).triggerHandler("_resize",[true]);
});
};
function _25(_26,_27){
var _28=$.data(_26,"panel").options;
var _29=$.data(_26,"panel").panel;
if(_27!=true){
if(_28.onBeforeOpen.call(_26)==false){
return;
}
}
_29.show();
_28.closed=false;
_28.minimized=false;
var _2a=_29.children("div.panel-header").find("a.panel-tool-restore");
if(_2a.length){
_28.maximized=true;
}
_28.onOpen.call(_26);
if(_28.maximized==true){
_28.maximized=false;
_2b(_26);
}
if(_28.collapsed==true){
_28.collapsed=false;
_2c(_26);
}
if(!_28.collapsed){
_1a(_26);
_23(_26);
}
};
function _19(_2d,_2e){
var _2f=$.data(_2d,"panel").options;
var _30=$.data(_2d,"panel").panel;
if(_2e!=true){
if(_2f.onBeforeClose.call(_2d)==false){
return;
}
}
_30._fit(false);
_30.hide();
_2f.closed=true;
_2f.onClose.call(_2d);
};
function _31(_32,_33){
var _34=$.data(_32,"panel").options;
var _35=$.data(_32,"panel").panel;
if(_33!=true){
if(_34.onBeforeDestroy.call(_32)==false){
return;
}
}
_1e(_32);
_1(_35);
_34.onDestroy.call(_32);
};
function _2c(_36,_37){
var _38=$.data(_36,"panel").options;
var _39=$.data(_36,"panel").panel;
var _3a=_39.children("div.panel-body");
var _3b=_39.children("div.panel-header").find("a.panel-tool-collapse");
if(_38.collapsed==true){
return;
}
_3a.stop(true,true);
if(_38.onBeforeCollapse.call(_36)==false){
return;
}
_3b.addClass("panel-tool-expand");
if(_37==true){
_3a.slideUp("normal",function(){
_38.collapsed=true;
_38.onCollapse.call(_36);
});
}else{
_3a.hide();
_38.collapsed=true;
_38.onCollapse.call(_36);
}
};
function _3c(_3d,_3e){
var _3f=$.data(_3d,"panel").options;
var _40=$.data(_3d,"panel").panel;
var _41=_40.children("div.panel-body");
var _42=_40.children("div.panel-header").find("a.panel-tool-collapse");
if(_3f.collapsed==false){
return;
}
_41.stop(true,true);
if(_3f.onBeforeExpand.call(_3d)==false){
return;
}
_42.removeClass("panel-tool-expand");
if(_3e==true){
_41.slideDown("normal",function(){
_3f.collapsed=false;
_3f.onExpand.call(_3d);
_1a(_3d);
_23(_3d);
});
}else{
_41.show();
_3f.collapsed=false;
_3f.onExpand.


 deterministic)
}
func (m *PerModulationCount) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PerModulationCount.Merge(m, src)
}
func (m *PerModulationCount) XXX_Size() int {
	return xxx_messageInfo_PerModulationCount.Size(m)
}
func (m *PerModulationCount) XXX_DiscardUnknown() {
	xxx_messageInfo_PerModulationCount.DiscardUnknown(m)
}

var xxx_messageInfo_PerModulationCount proto.InternalMessageInfo

func (m *PerModulationCount) GetModulation() *Modulation {
	if m != nil {
		return m.Modulation
	}
	return nil
}

func (m *PerModulationCount) GetCount() uint32 {
	if m != nil {
		return m.Count
	}
	return 0
}

type UplinkRXInfo struct {
	// Gateway ID.
	GatewayId []byte `protobuf:"bytes,1,opt,name=gateway_id,json=gatewayID,proto3" json:"gateway_id,omitempty"`
	// RX time (only set when the gateway has a GPS module).
	Time *timestamp.Timestamp `protobuf:"bytes,2,opt,name=time,proto3" json:"time,omitempty"`
	// RX time since GPS epoch (only set when the gateway has a GPS module).
	TimeSinceGpsEpoch *duration.Duration `protobuf:"bytes,3,opt,name=time_since_gps_epoch,json=timeSinceGPSEpoch,proto3" json:"time_since_gps_epoch,omitempty"`
	// RSSI.
	Rssi int32 `protobuf:"varint,5,opt,name=rssi,proto3" json:"rssi,omitempty"`
	// LoRa SNR.
	LoraSnr float64 `protobuf:"fixed64,6,opt,name=lora_snr,json=loRaSNR,proto3" json:"lora_snr,omitempty"`
	// Channel.
	Channel uint32 `protobuf:"varint,7,opt,name=channel,proto3" json:"channel,omitempty"`
	// RF Chain.
	RfChain uint32 `protobuf:"varint,8,opt,name=rf_chain,json=rfChain,proto3" json:"rf_chain,omitempty"`
	// Board.
	Board uint32 `protobuf:"varint,9,opt,name=board,proto3" json:"board,omitempty"`
	// Antenna.
	Antenna uint32 `protobuf:"varint,10,opt,name=antenna,proto3" json:"antenna,omitempty"`
	// Location.
	Location *common.Location `protobuf:"bytes,11,opt,name=location,proto3" json:"location,omitempty"`
	// Fine-timestamp type.
	FineTimestampType FineTimestampType `protobuf:"varint,12,opt,name=fine_timestamp_type,json=fineTimestampType,proto3,enum=gw.FineTimestampType" json:"fine_timestamp_type,omitempty"`
	// Fine-timestamp data.
	//
	// Types that are valid to be assigned to FineTimestamp:
	//	*UplinkRXInfo_EncryptedFineTimestamp
	//	*UplinkRXInfo_PlainFineTimestamp
	FineTimestamp isUplinkRXInfo_FineTimestamp `protobuf_oneof:"fine_timestamp"`
	// Gateway specific context.
	Context []byte `protobuf:"bytes,15,opt,name=context,proto3" json:"context,omitempty"`
	// Uplink ID (UUID bytes).
	// Unique and random ID which can be used to correlate the uplink across multiple logs.
	UplinkId []byte `protobuf:"bytes,16,opt,name=uplink_id,json=uplinkID,proto3" json:"uplink_id,omitempty"`
	// CRC status.
	CrcStatus            CRCStatus `protobuf


	CRYPT_END

	return TRUE;  // return TRUE  unless you set the focus to a control
}
#pragma optimize("", on)

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CPelock_hardwareidDlg::OnPaint()
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CPelock_hardwareidDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}
////////////////////////////////////////////////////////////////////////////////
//
// Example of how to read license key status information
//
// Version        : PELock v2.0
// Language       : C++
// Author         : Bartosz Wjcik (support@pelock.com)
// Web page       : https://www.pelock.com
//
////////////////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "pelock_key_status.h"
#include "pelock_key_statusDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CPelock_key_statusDlg dialog

CPelock_key_statusDlg::CPelock_key_statusDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CPelock_key_statusDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CPelock_key_statusDlg)
	m_KeyInfo = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CPelock_key_statusDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPelock_key_statusDlg)
	DDX_Text(pDX, IDC_DAYS, m_KeyInfo);
	DDV_MaxChars(pDX, m_KeyInfo, 256);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CPelock_key_statusDlg, CDialog)
	//{{AFX_MSG_MAP(CPelock_key_statusDlg)
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPelock_key_statusDlg message handlers

BOOL CPelock_key_statusDlg::OnInitDialog()
{
	CPELock myPELock;
	int dwKeyStatus = myPELock.PELOCK_KEY_NOT_FOUND;

	CDialog::OnInitDialog();

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon

	// read license key status


'Actors: ' .. jomdb.Actors .. '\n'
        .. 'Country: ' .. jomdb.Country .. '\n'
        .. 'Awards: ' .. jomdb.Awards .. '\n'
        .. 'Plot: ' .. jomdb.Plot .. '\n\n'
        .. 'IMDB:\n'
        .. 'Metascore: ' .. jomdb.Metascore .. '\n'
        .. 'Rating: ' .. jomdb.imdbRating .. '\n'
        .. 'Votes: ' .. jomdb.imdbVotes .. '\n\n'

    bot_sendMessage(get_receiver_api(msg), omdb, false, msg.id, 'html')
  end

  return {
    description = 'The Open Movie Database plugin for Telegram.',
    usage = {
      '!imdb [movie]',
      '!omdb [movie]',
      'Returns IMDb entry for [movie]',
      'Example: !imdb the matrix',
      '',
      '!imdb [movie] [year]',
      '!omdb [movie] [year]',
      'Returns IMDb entry for [movie] that was released in [year]',
      'Example: !imdb the matrix 2003',
    },
    patterns = {
      '^![io]mdb (.+)$',
    },
    run = run
  }

end


2px);padding:.5rem 1rem}body.theme-dark .form-control-lg::-webkit-file-upload-button{-webkit-margin-end:1rem;margin:-.5rem -1rem;margin-inline-end:1rem;padding:.5rem 1rem}body.theme-dark .form-control-lg::file-selector-button{-webkit-margin-end:1rem;margin:-.5rem -1rem;margin-inline-end:1rem;padding:.5rem 1rem}body.theme-dark textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}body.theme-dark textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}body.theme-dark textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}body.theme-dark .form-control-color{height:calc(1.5em + .75rem + 2px);padding:.375rem;width:3rem}body.theme-dark .form-control-color:not(:disabled):not([readonly]){cursor:pointer}body.theme-dark .form-control-color::-moz-color-swatch{border:0!important;border-radius:.25rem}body.theme-dark .form-control-color::-webkit-color-swatch{border-radius:.25rem}body.theme-dark .form-control-color.form-control-sm{height:calc(1.5em + .5rem + 2px)}body.theme-dark .form-control-color.form-control-lg{height:calc(1.5em + 1rem + 2px)}body.theme-dark .form-select{-moz-padding-start:calc(.75rem - 3px);-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#1b1b29;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");background-position:right .75rem center;background-repeat:no-repeat;background-size:16px 12px;border:1px solid #35354f;border-radius:.25rem;color:#c2c2d9;display:block;font-size:1rem;font-weight:400;line-height:1.5;padding:.375rem 1.75rem .375rem .75rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}@media (prefers-reduced-motion:reduce){body.theme-dark .form-select{transition:none}}body.theme-dark .form-select:focus{border-color:#a1afdf;box-shadow:0 0 0 .25rem rgba(67,94,190,.25);outline:0}body.theme-dark .form-select[multiple],body.theme-dark .form-select[size]:not([size="1"]){background-image:none;padding-right:.75rem}body.theme-dark .form-select:disabled{background-color:#40404d;color:#6c757d}body.theme-dark .form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #c2c2d9}body.theme-dark .form-select-sm{border-radius:.2rem;font-size:.875rem;padding-bottom:.25rem;padding-left:.5rem;padding-top:.25rem}body.theme-dark .form-select-lg{border-radius:.3rem;font-size:1.25rem;padding-bottom:.5rem;padding-left:1rem;padding-top:.5rem}body.theme-dark .form-check{display:block;margin-bottom:.125rem;min-height:1.5rem;padding-left


rint-table .tabulator-print-table-group.tabulator-group-level-5 td{padding-left:110px!important}.tabulator-print-table .tabulator-print-table-group .tabulator-group-toggle{display:inline-block}.tabulator-print-table .tabulator-print-table-group .tabulator-arrow{border-bottom:6px solid transparent;border-left:6px solid #666;border-right:0;border-top:6px solid transparent;display:inline-block;height:0;margin-right:16px;vertical-align:middle;width:0}.tabulator-print-table .tabulator-print-table-group span{color:#d00;margin-left:10px}.tabulator-print-table .tabulator-data-tree-control{align-items:center;background:rgba(0,0,0,.1);border:1px solid #333;border-radius:2px;display:inline-flex;height:11px;justify-content:center;margin-right:5px;overflow:hidden;vertical-align:middle;width:11px}@media (hover:hover) and (pointer:fine){.tabulator-print-table .tabulator-data-tree-control:hover{background:rgba(0,0,0,.2);cursor:pointer}}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse{background:transparent;display:inline-block;height:7px;position:relative;width:1px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-collapse:after{background:#333;content:"";height:1px;left:-3px;position:absolute;top:3px;width:7px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand{background:#333;display:inline-block;height:7px;position:relative;width:1px}.tabulator-print-table .tabulator-data-tree-control .tabulator-data-tree-control-expand:after{background:#333;content:"";height:1px;left:-3px;position:absolute;top:3px;width:7px}
/*# sourceMappingURL=tabulator.min.css.map *//*!
 * Bootstrap v4.3.1 (https://getbootstrap.com/)
 * Copyright 2011-2019 The Bootstrap Authors
 * Copyright 2011-2019 Twitter, Inc.
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
:root {
  --blue: #007bff;
  --indigo: #6610f2;
  --purple: #6f42c1;
  --pink: #e83e8c;
  --red: #dc3545;
  --orange: #fd7e14;
  --yellow: #ffc107;
  --green: #28a745;
  --teal: #20c997;
  --cyan: #17a2b8;
  --white: #fff;
  --gray: #6c757d;
  --gray-dark: #343a40;
  --primary: #007bff;
  --secondary: #6c757d;
  --success: #28a745;
  --info: #17a2b8;
  --warning: #ffc107;
  --danger: #dc3545;
  --light: #f8f9fa;
  --dark: #343a40;
  --breakpoint-xs: 0;
  --breakpoint-sm: 576px;
  --breakpoint-md: 768px;
  --breakpoint-lg: 992px;
  --breakpoint-xl: 1200px;
  --font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  --font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}


 = rollDePlus(4, {
          bonus: rang
        });
        sendChar(beneficiaire.charId, " boit un fortifiant");
        soigneToken(beneficiaire, soins.val, evt, function(soinsEffectifs) {
          var msgSoins = "et est soigné de ";
          if (soinsEffectifs == soins.val) msgSoins += soins.roll + " PV";
          else msgSoins += soinsEffectifs + " PV (le jet était " + soins.roll + ")";
          sendChar(beneficiaire.charId, msgSoins);
        });
        // Finalement on met l'effet fortifie
        setTokenAttr(beneficiaire, 'fortifie', rang + 1, evt);
      });
    });
  }

  function lancerSort(msg) {
    var options = parseOptions(msg);
    if (options === undefined) return;
    var cmd = options.cmd;
    if (cmd === undefined) return;
    if (options.messages === undefined) options.messages = [];
    if (cmd.length > 1) options.messages.unshift(cmd.slice(1).join(' '));
    if (options.messages.length < 1) {
      options.messages.push("lance un sort");
    }
    getSelected(msg, function(selected, playerId) {
      if (selected.length === 0) {
        if (options.lanceur) {
          selected = [{
            _id: options.lanceur.token.id
          }];
        } else {
          error("Pas de token sélectionée pour !cof-lancer-sort", cmd);
          return;
        }
      }
      var evt = {
        type: "lancement de sort"
      };
      addEvent(evt);
      if (options.son) playSound(options.son);
      iterSelected(selected, function(lanceur) {
        if (options.tempeteDeMana) {
          if (options.tempeteDeMana.cout === 0) {
            //On demande de préciser les options
            var optMana = {
              mana: options.mana,
              dm: false,
              soins: false,
              duree: true,
              portee: true,
              rang: options.rang,
            };
            setTempeteDeMana(playerId, lanceur, msg.content, optMana);
            return;
          } else {
            if (options.rang && options.tempeteDeMana.cout > options.rang) {
              sendChar(lanceur.charId, "Attention, le coût de la tempête de mana (" + options.tempeteDeMana.cout + ") est supérieur au rang du sort");
            }
          }
        }
        if (limiteRessources(lanceur, options, undefined, "lancer un sort", evt)) return;
        options.messages.forEach(function(m) {
          whisperChar(lanceur.charId, m);
        });
      });
    });
  }

  function emulerAs(msg) {
    var cmd = msg.content.split(' ');
    if (cmd.length < 2) {
      error("Il manque le nom du personnage pour !cof-as", msg.content);
      return;
    }
    cmd.shift();
    var nomPerso = cmd.shift();
    if (nomPerso.charAt(0) == '"') {
      nomPerso = nomPerso.substring(1);
      var inComma = cmd.length;
      while (inComma) {
        nomPerso += ' ' + cmd.shift();
        inComma--;
        if (nomPerso.endsWith('"')) {
          nomPerso = nomPerso.substr(0, nomPerso.length - 1);
          inComma = 0;
        }
      }
    }
    var message = cmd.join(' ');
    sendChat(nomPerso, message);
  }

  function murDeForce(msg) {
    var options = parseOptions(msg);
    if (optio


ents !important;
}
html[channel-style]:not([channel-style^="polymer"]) .banner-visible-area.ytd-c4-tabbed-header-renderer,
html[channel-style]:not([channel-style^="polymer"]) ytd-c4-tabbed-header-renderer .banner-visible-area.ytd-c4-tabbed-header-renderer,
html[channel-style]:not([channel-style^="polymer"]) ytd-c4-tabbed-header-renderer[guide-persistent-and-visible] .banner-visible-area.ytd-c4-tabbed-header-renderer,
html[channel-style]:not([channel-style^="polymer"]) #banner-editor {
  height: var(--bt-channel-page-banner-height) !important;
}
html[channel-style] ytd-browse[page-subtype="channels"] .page-header-banner {
  height: var(--bt-channel-page-banner-height);
}
html[channel-style^="amsterdam"] {
--bt-tab-shape-height: 48px;
--bt-tab-shape-margin-right: 24px;
--bt-tab-shape-padding: 0;
--bt-tab-shape-slider-display: block;
}
html[channel-style^="polymer"] {
--bt-tab-shape-height: 48px;
--bt-tab-shape-margin-right: 24px;
--bt-tab-shape-padding: 0 20px;
--bt-tab-shape-slider-display: block;

--bt-channel-page-tab-font-size: 1.4rem;
--bt-channel-page-tab-font-weight: 500;
--bt-channel-page-tab-text-transform: uppercase;
--bt-channel-page-tab-letter-spacing: 0.4px;
}
html[channel-style^="hitchhiker"] {
--bt-channel-page-tab-strip-padding: 0;
--bt-channel-page-tab-height: 29px;
--bt-channel-page-tab-padding: 0px; /* formerly 0 6px */
--bt-channel-page-tab-margin: -4px 0 0 20px;
--bt-channel-page-tab-font-size: 13px;
--bt-channel-page-tab-font-weight: normal;
--bt-channel-page-tab-text-transform: none;
--bt-channel-page-tab-border-bottom: 3px solid transparent;
--bt-channel-page-tab-border-bottom-hover: 3px solid var(--bt-emphasis);
--bt-channel-page-tab-border-bottom-active: 3px solid var(--bt-emphasis);
--bt-channel-page-og-tab-bar-display: none;

--bt-tab-shape-height: 30px;
--bt-tab-shape-margin-right: 12px;
--bt-tab-shape-padding: 0;
--bt-tab-shape-slider-display: none;
}
html[channel-style^="cosmicpanda"] {
--bt-channel-page-header-bg: #202020 url(http://s.ytimg.com/yt/img/channels/c3/bg-channel-header-vfl6TeHdT.png) repeat-x;
--bt-channel-page-header-radius: 5px 5px 0 0;
--bt-channel-page-tab-strip-padding: 0;
--bt-channel-page-tab-strip-bg: -webkit-linear-gradient(bottom,#323232 0,#4f4f4f 70%);
--bt-channel-page-tab-bg: transparent;
--bt-channel-page-tab-bg-hover: -webkit-gradient(linear,left bottom,left top,color-stop(0,#3a3a3a),color-stop(0.7,#555));
--bt-channel-page-tab-bg-active: -webkit-linear-gradient(top,#323232 0,#1c1c1c 70%);
--bt-channel-page-tab-text-color: #eaeaea;
--bt-channel-page-tab-height: 34px;
--bt-channel-page-tab-padding: 0 12px;


croll',ct:'100',charge:'charged',cost:'0',body:'\\amp{template:'+fields.scrollTemplate+'}{{title=Heroes Feast}}{{splevel=Scroll}}{{school=Evocation}}{{sphere=Creation}}Specs=[Scroll of Heroes Feast,Scroll,1H,Evocation]{{components=V,M}}{{time=[[1]] turn}}ScrollData=[sp:100,rc:charged]{{range=[[10]] yds}}{{duration=[[1]] hour}}{{aoe=[[12]] creatures}}{{save=None}}{{healing=[Make Heroes](!rounds --target area|@{selected|token_id}|\\amp#64;{target|Select first target|token_id}|Heroes-Feast|99|0|Blessed, +1 to attk, immune to fear, hopelessness, panic|angel-outfit)}}{{effects=This scroll enables the priest to bring forth a great feast that serves [[12]] creatures. The spell creates a magnificent table, chairs, service, and all the necessary food and drink. The feast takes one full hour to consume, and the beneficial effects do not set in until after this hour is over. Those partaking of the feast are cured of all diseases, are immune to poison for [[12]] hours, and are healed of [1d4+4](!\\amp#13;\\amp#47;r 1d4+4) points of damage after imbibing the nectarlike beverage that is part of the feast. The ambrosia-like food that is consumed is equal to a bless spell that lasts for 12 hours. Also, during this same period, the people who consumed the feast are immune to fear, hopelessness, and panic. If the feast is interrupted for any reason, the spell is ruined and all effects of the spell are negated}}{{materials=Scroll}}'},
						{name:'Scroll-of-Hold-Person',type:'scroll',ct:'3',charge:'charged',cost:'0',body:'\\amp{template:'+fields.scrollTemplate+'}{{title=Scroll of Hold Person}}{{splevel=Level 3 Wizard}}{{school=Enchantment/Charm}}Specs=[Scroll of Hold Person,Scroll,1H,Enchantment-Charm]{{components=V, S}}{{time=[[3]]}}ScrollData=[sp:3,rc:charged]{{range=[[120]] yards}}{{duration=[[12]] rounds}}{{aoe=[1d4](!\\amp#13;\\amp#47;r 1d4) persons in [20ft. cube](!rounds --aoe @{selected|token_id}|square|feet|360|20||magic)}}{{save=Negates}}{{damage=[Hold](!rounds --target area|@{selected|character_id}|\\amp#64;{target|Select first target|token_id}|Hold-person|12|-1|Held|fishing-net)}}{{effects=This spell will hold humans, demihumans and humanoid creatures. The spell is centered on a point chosen by the caster and it affects all persons within the area of effect. If three or four persons are caught, they all get unmodified Saving Throws while if only two persons are caught, they suffer a [[0-1]] and if only one person is caught, they suffer a [[0-3]] to their Saving Throws. Wisdom adjustments can contribute to Saving Throws. Cannot hold undead}}'},
						{name:'Scroll-of-Hunger',type:'scroll',ct:'1',charge:'cursed-charged',cost:'0',body:'\\amp{template:'+fields.scrollTemplate+'}{{title=Scroll of Hunger}}{{splevel=Scroll}}{{school=Curse}}Specs=[Scroll of Hunger,Scroll,1H,Curse]{{components=V,M}}{{time=[[0]]}}ScrollData=[sp:1,rc:cursed-charged]{{range=Reader}}{{duration=Permanent}}{{aoe=Reader}}{{save=None}}{{effects=The creature reading this scroll ***immediately*** gains an insatiable appetite. From this point on, you must have food in at least one of your hands and be always taking bites of it. Your backpack will gradually become full of just food, and lose space for anything else!}}{{materials=Scroll}}\n!rounds --target caster|@{selected|token_id}|Scroll of Hunger


dzone.html#cfn-route53-hostedzone-name).
    ///
    /// Update type: _Immutable_.
    /// AWS CloudFormation replaces the resource when you change this property.
    pub name: ::Value<String>,
    /// Property [`QueryLoggingConfig`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-queryloggingconfig).
    ///
    /// Update type: _Mutable_.
    /// AWS CloudFormation doesn't replace the resource when you change this property.
    pub query_logging_config: Option<::Value<self::hosted_zone::QueryLoggingConfig>>,
    /// Property [`VPCs`](http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-vpcs).
    ///
    /// Update type: _Mutable_.
    /// AWS CloudFormation doesn't replace the resource when you change this property.
    pub vp_cs: Option<::ValueList<self::hosted_zone::VPC>>,
}

impl ::serde::Serialize for HostedZoneProperties {
    fn serialize<S: ::serde::Serializer>(&self, s: S) -> Result<S::Ok, S::Error> {
        let mut map = ::serde::Serializer::serialize_map(s, None)?;
        if let Some(ref hosted_zone_config) = self.hosted_zone_config {
            ::serde::ser::SerializeMap::serialize_entry(&mut map, "HostedZoneConfig", hosted_zone_config)?;
        }
        if let Some(ref hosted_zone_tags) = self.hosted_zone_tags {
            ::serde::ser::SerializeMap::serialize_entry(&mut map, "HostedZoneTags", hosted_zone_tags)?;
        }
        ::serde::ser::SerializeMap::serialize_entry(&mut map, "Name", &self.name)?;
        if let Some(ref query_logging_config) = self.query_logging_config {
            ::serde::ser::SerializeMap::serialize_entry(&mut map, "QueryLoggingConfig", query_logging_config)?;
        }
        if let Some(ref vp_cs) = self.vp_cs {
            ::serde::ser::SerializeMap::serialize_entry(&mut map, "VPCs", vp_cs)?;
        }
        ::serde::ser::SerializeMap::end(map)
    }
}

impl<'de> ::serde::Deserialize<'de> for HostedZoneProperties {
    fn deserialize<D: ::serde::Deserializer<'de>>(d: D) -> Result<HostedZoneProperties, D::Error> {
        struct Visitor;

        impl<'de> ::serde::de::Visitor<'de> for Visitor {
            type Value = HostedZoneProperties;

            fn expecting(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
                write!(f, "a struct of type HostedZoneProperties")
            }

            fn visit_map<A: ::serde::de::MapAccess<'de>>(self, mut map: A) -> Result<Self::Value, A::Error> {
                let mut hosted_zone_config: Option<::Value<self::hosted_zone::HostedZoneConfig>> = None;
                let mut hosted_zone_tags: Option<::ValueList<self::hosted_zone::HostedZoneTag>> = None;
                let mut name: Option<::Value<String>> = None;
                let mut query_logging_config: Option<::Value<self::hosted_zone::QueryLoggingConfig>> = None;
                let mut vp_cs: Option<::ValueList<self::hosted_zone::VPC>> = None;

                while let Some(__cfn_key) = ::serde::de::MapAccess::next_key::<String>(&mut map)? {
                    match __cfn_key.as_ref() {
                        "HostedZoneConfig" => {
                            hosted_zone_config = ::serde::de::MapAccess::next_value(&mut map)?;
                        }
                        "HostedZone


 }, ",").."}"
end

local mrg_mt = {
   __new = function(ct, s) -- TODO: Check, either new or copy are broken.
      local seed = s and s or y0
    return ffi.new(ct, seed, seed, seed, seed, seed, seed)
  end,
  __tostring = function(self)
    local o = self
    return "mrg32k3a "..sarg(o._y11, o._y12, o._y13, o._y21, o._y22, o._y23)
  end,
  copy = function(self)
    return ffi.new(ffi.typeof(self), self)
  end,
  -- Sampling algorithm (combine excluded), see pag. 11 of:
  -- http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.1341 .
  -- This rng, with this parameters set, allows to keep the state info in
  -- double precision numbers (i.e. Lua numbers).
  sample = function(self)
    -- assert(math.abs(a12*self._y12 + a13*self._y13) < 2^53)
    local p1 = (a12*self._y12 + a13*self._y13) % m1
    self._y13 = self._y12; self._y12 = self._y11; self._y11 = p1
    -- assert(math.abs(a21*self._y21 + a23*self._y23) < 2^53)
    local p2 = (a21*self._y21 + a23*self._y23) % m2
    self._y23 = self._y22; self._y22 = self._y21; self._y21 = p2
    return ((p1 - p2) % m1)*scale -- PERF: this branchless version is faster.
  end,
  -- Skip ahead 2^k samples and returns last sample.
  -- Notice n = 2^k, k >= 1.
  _sampleahead2pow = function(self, k)
    local A1 = aheadA1[k]
    local A2 = aheadA2[k]
    local y11, y12, y13 = self._y11, self._y12, self._y13
    local y21, y22, y23 = self._y21, self._y22, self._y23
    self._y11 = vvmodmul(A1, 1, y11, y12, y13, m1)
    self._y12 = vvmodmul(A1, 2, y11, y12, y13, m1)
    self._y13 = vvmodmul(A1, 3, y11, y12, y13, m1)
    self._y21 = vvmodmul(A2, 1, y21, y22, y23, m2)
    self._y22 = vvmodmul(A2, 2, y21, y22, y23, m2)
    self._y23 = vvmodmul(A2, 3, y21, y22, y23, m2)
    -- PERF: this branchless version is faster:
    return ((self._y11 - self._y21)%m1)*scale
  end
}
mrg_mt.__index = mrg_mt

local mrg32k3a = ffi.metatype(
  "struct { double _y11, _y12, _y13, _y21, _y22, _y23; }", mrg_mt)

return {
  mrg32k3a = mrg32k3a,
}


eaks today?",
        "winning_outcome_id": null,
        "outcomes": [
            {
            "id": "021e9234-5893-49b4-982e-cfe9a0aaddd9",
            "title": "Yes",
            "users": 0,
            "channel_points": 0,
            "top_predictors": null,
            "color": "BLUE"
            },
            {
            "id": "ded84c26-13cb-4b48-8cb5-5bae3ec3a66e",
            "title": "No",
            "users": 0,
            "channel_points": 0,
            "top_predictors": null,
            "color": "PINK"
            }
        ],
        "prediction_window": 600,
        "status": "ACTIVE",
        "created_at": "2021-04-28T16:03:06.320848689Z",
        "ended_at": null,
        "locked_at": null
        }
    ],
    "pagination": {}
    }
"#
    .to_vec();

    let http_response = http::Response::builder().body(data).unwrap();

    let uri = req.get_uri().unwrap();
    assert_eq!(
        uri.to_string(),
        "https://api.twitch.tv/helix/predictions?broadcaster_id=55696719&id=d6676d5c-c86e-44d2-bfc4-100fb48f0656"
    );

    dbg!(GetPredictionsRequest::parse_response(Some(req), &uri, http_response).unwrap());
}
/*

  This Library represents DLL, which can be called from ThinBASIC.

  The purpose of this code to give idea how to setup Rust to talk to ThinBASIC.

*/

// Include the functions from other files, and make them public = exported
mod thinbasic;

pub mod unsigned_integers;
pub mod signed_integers;
pub mod floating_points;

pub mod fixed_length_strings;
pub mod dynamic_strings;

pub mod user_defined_types;
pub struct Solution;

impl Solution {
    pub fn convert_to_title(n: i32) -> String {
        assert!(n > 0);
        let mut n = n;
        std::iter::from_fn(move || match n {
            0 => None,
            _ => {
                n -= 1;
                let d = n % 26 + 'A' as i32;
                n /= 26;
                Some(d as u8 as char)
            }
        })
        .collect::<Vec<char>>()
        .into_iter()
        .rev()
        .collect()
    }
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn test() {
        assert_eq!(Solution::convert_to_title(1), "A");
        assert_eq!(Solution::convert_to_title(28), "AB");
        assert_eq!(Solution::convert_to_title(701), "ZY");
        assert_eq!(Solution::convert_to_title(704), "AAB");
    }
}
<reponame>avenuesec/fix-rust
//! MessageStore's implementation that just outputs/restore the state to/from the file system

use std::io::{self, Read, Write, Seek, SeekFrom};
use std::fs::{self, File, OpenOptions, DirBuilder};
use std::path::{PathBuf, Path};
use std::collections::HashMap;

use bytes::{BytesMut};
use chrono::{DateTime, Utc};
use nom::IResult;

use fix::frame::{self, FixFrame};
use super::{MessageStore, MessageStoreState};
use super::super::FixSessionConfig;
use super::super::sender::Sender;

pub struct FSMessageStore {
    seqnums: File,
    messages: File,
    messages_pos: usize,
    headers: File,
    session: File,
    offsets_map: HashMap<i32, (usize, usize)>,

    session_creation: DateTime<Utc>,

    sender: Option


00000 */   nop
.L80039834:
/* 2A034 80039834 23108300 */  subu       $v0, $a0, $v1
/* 2A038 80039838 C9004228 */  slti       $v0, $v0, 0xC9
/* 2A03C 8003983C 2C004010 */  beqz       $v0, .L800398F0
/* 2A040 80039840 02000224 */   addiu     $v0, $zero, 0x2
.L80039844:
/* 2A044 80039844 1800A28F */  lw         $v0, 0x18($sp)
/* 2A048 80039848 00000000 */  nop
/* 2A04C 8003984C 0C0002AE */  sw         $v0, 0xC($s0)
/* 2A050 80039850 1C00A28F */  lw         $v0, 0x1C($sp)
/* 2A054 80039854 00000000 */  nop
/* 2A058 80039858 100002AE */  sw         $v0, 0x10($s0)
/* 2A05C 8003985C 04002232 */  andi       $v0, $s1, 0x4
/* 2A060 80039860 1B004010 */  beqz       $v0, .L800398D0
/* 2A064 80039864 54002232 */   andi      $v0, $s1, 0x54
/* 2A068 80039868 38000386 */  lh         $v1, 0x38($s0)
/* 2A06C 8003986C 2000A28F */  lw         $v0, 0x20($sp)
/* 2A070 80039870 1400048E */  lw         $a0, 0x14($s0)
/* 2A074 80039874 00044224 */  addiu      $v0, $v0, 0x400
/* 2A078 80039878 21184302 */  addu       $v1, $s2, $v1
/* 2A07C 8003987C 23186400 */  subu       $v1, $v1, $a0
/* 2A080 80039880 2000A2AF */  sw         $v0, 0x20($sp)
/* 2A084 80039884 02006104 */  bgez       $v1, .L80039890
/* 2A088 80039888 21106000 */   addu      $v0, $v1, $zero
/* 2A08C 8003988C 23100200 */  negu       $v0, $v0
.L80039890:
/* 2A090 80039890 59024228 */  slti       $v0, $v0, 0x259
/* 2A094 80039894 09004014 */  bnez       $v0, .L800398BC
/* 2A098 80039898 00000000 */   nop
/* 2A09C 8003989C 04006018 */  blez       $v1, .L800398B0
/* 2A0A0 800398A0 00000000 */   nop
/* 2A0A4 800398A4 1400028E */  lw         $v0, 0x14($s0)
/* 2A0A8 800398A8 32E60008 */  j          .L800398C8
/* 2A0AC 800398AC FA004224 */   addiu     $v0, $v0, 0xFA
.L800398B0:
/* 2A0B0 800398B0 1400028E */  lw         $v0, 0x14($s0)
/* 2A0B4 800398B4 32E60008 */  j          .L800398C8
/* 2A0B8 800398B8 06FF4224 */   addiu     $v0, $v0, -0xFA
.L800398BC:
/* 2A0BC 800398BC 38000286 */  lh         $v0, 0x38($s0)
/* 2A0C0 800398C0 00000000 */  nop
/* 2A0C4 800398C4 21104202 */  addu       $v0, $s2, $v0
.L800398C8:
/* 2A0C8 800


s code and its internal interfaces are subject to change or
 *  deletion without notice.</b>
 */
public enum Opcode {
    NOP(0x0),
    ACONST_NULL(0x1),
    ICONST_M1(0x2),
    ICONST_0(0x3),
    ICONST_1(0x4),
    ICONST_2(0x5),
    ICONST_3(0x6),
    ICONST_4(0x7),
    ICONST_5(0x8),
    LCONST_0(0x9),
    LCONST_1(0xa),
    FCONST_0(0xb),
    FCONST_1(0xc),
    FCONST_2(0xd),
    DCONST_0(0xe),
    DCONST_1(0xf),
    BIPUSH(0x10, BYTE),
    SIPUSH(0x11, SHORT),
    LDC(0x12, CPREF),
    LDC_W(0x13, CPREF_W),
    LDC2_W(0x14, CPREF_W),
    ILOAD(0x15, LOCAL),
    LLOAD(0x16, LOCAL),
    FLOAD(0x17, LOCAL),
    DLOAD(0x18, LOCAL),
    ALOAD(0x19, LOCAL),
    ILOAD_0(0x1a),
    ILOAD_1(0x1b),
    ILOAD_2(0x1c),
    ILOAD_3(0x1d),
    LLOAD_0(0x1e),
    LLOAD_1(0x1f),
    LLOAD_2(0x20),
    LLOAD_3(0x21),
    FLOAD_0(0x22),
    FLOAD_1(0x23),
    FLOAD_2(0x24),
    FLOAD_3(0x25),
    DLOAD_0(0x26),
    DLOAD_1(0x27),
    DLOAD_2(0x28),
    DLOAD_3(0x29),
    ALOAD_0(0x2a),
    ALOAD_1(0x2b),
    ALOAD_2(0x2c),
    ALOAD_3(0x2d),
    IALOAD(0x2e),
    LALOAD(0x2f),
    FALOAD(0x30),
    DALOAD(0x31),
    AALOAD(0x32),
    BALOAD(0x33),
    CALOAD(0x34),
    SALOAD(0x35),
    ISTORE(0x36, LOCAL),
    LSTORE(0x37, LOCAL),
    FSTORE(0x38, LOCAL),
    DSTORE(0x39, LOCAL),
    ASTORE(0x3a, LOCAL),
    ISTORE_0(0x3b),
    ISTORE_1(0x3c),
    ISTORE_2(0x3d),
    ISTORE_3(0x3e),
    LSTORE_0(0x3f),
    LSTORE_1(0x40),
    LSTORE_2(0x41),
    LSTORE_3(0x42),
    FSTORE_0(0x43),
    FSTORE_1(0x44),
    FSTORE_2(0x45),
    FSTORE_3(0x46),
    DSTORE_0(0x47),
    DSTORE_1(0x48),
    DSTORE_2(0x49),
    DSTORE_3(0x4a),
    ASTORE_0(0x4b),
    ASTORE_1(0x4c),
    ASTORE_2(0x4d),
    ASTORE_3(0x4e),
    IASTORE(0x4f),
    LASTORE(0x50),
    FASTORE(0x51),
    DASTORE(0x52),
    AASTORE(0x53),
    BASTORE(0x54),
    CASTORE(0x55),
    SASTORE(0x56),
    POP(0x57),
    POP2(0x58),
    DUP(0x59),
    DUP_X1(0x5a),
    DUP_X2(0x5b),
    DUP2(0x5c),
    DUP2_X1(0x5d),
    DUP2_X2(0x5e),
    SWAP(0x5f),
    IADD(0x60),
    LADD(0x61),
    FADD(0x62),
    DADD(0x63),
    ISUB(0x64),
    LSUB(0x65),
    FSUB(0x66),
    DSUB(0x67),
    IMUL(0x68),
    LMUL(0x69),
    FMUL(0x6a),
    DMUL(0x6b),
    IDIV(0x6c),
    LDIV(0x6d),
    FDIV(0x6e),
    DDIV(0x6f),
    IREM(0x70),
    LREM(0x71),
    FREM(0x72),
    DREM(0x73),
    INEG(0x74),
    LNEG(0x75),


nk-900{color:#4F5665 !important}.link-900:hover,.link-900:focus{color:#2d313a !important}.link-1000{color:#272D4E !important}.link-1000:hover,.link-1000:focus{color:#0e101b !important}.link-1100{color:#1F1534 !important}.link-1100:hover,.link-1100:focus{color:#000 !important}.link-white{color:#fff !important}.link-white:hover,.link-white:focus{color:#d9d9d9 !important}.shadow-transition{-webkit-box-shadow:0 25px 45px rgba(79,86,101,0.075);box-shadow:0 25px 45px rgba(79,86,101,0.075);-webkit-transition:-webkit-box-shadow 0.4s ease;transition:-webkit-box-shadow 0.4s ease;-o-transition:box-shadow 0.4s ease;transition:box-shadow 0.4s ease;transition:box-shadow 0.4s ease, -webkit-box-shadow 0.4s ease}.icon-group{display:-webkit-box;display:-ms-flexbox;display:flex}.icon-group .icon-item:not(:last-child){margin-right:.5rem}.icon-item{border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#7D7987;-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;height:2.5rem;width:2.5rem;border:0;font-size:.875rem;-webkit-box-shadow:0 1.5625rem 2.8125rem rgba(205,204,209,0.075);box-shadow:0 1.5625rem 2.8125rem rgba(205,204,209,0.075)}.icon-item:hover,.icon-item:focus{background-color:#EBEBED}.icon-item.icon-item-sm{height:1.875rem;width:1.875rem}.icon-item.icon-item-lg{height:2.75rem;width:2.75rem}.fontawesome-i2svg-active .icon-indicator{opacity:1}.fit-cover{-o-object-fit:cover;object-fit:cover}.z-index-1{z-index:1}.z-index-2{z-index:2 !important}.z-index--1{z-index:-1}.sticky-sidebar{position:-webkit-sticky;position:sticky;z-index:1020;top:5.3125rem}.circle-dashed{border:1px dashed #458FF6;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;border-radius:50%;width:3.5rem;height:3.5rem}.hover-text-decoration-none:hover,.hover-text-decoration-none:focus{text-decoration:none}.resize-none{resize:none}.collapsed .collapse-icon{-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;-webkit-transform:rotate(0deg);-ms-transform:rotate(0deg);transform:rotate(0deg)}.collapse-icon{-webkit-transition:all 0.2s ease-in-out;-o-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out;-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}[data-dismiss="dropdown"] *,[data-offset


let-fill="fill">

		 0" class="bi-heart-fill filled" [style.width.%]="fill">

</ng-template>

<ngb-rating
	[(rate)]="currentRate"
	[starTemplate]="t"
	[readonly]="true"
	[max]="5"
	[ariaValueText]="ariaValueText"
></ngb-rating>

Rate: {{currentRate}}

<button class="btn btn-sm btn-outline-primary me-2" (click)="currentRate = 1.35">1.35</button>
<button class="btn btn-sm btn-outline-primary me-2" (click)="currentRate = 4.72">4.72</button>
">

    <input type="hidden" name="project[files][src/app/rating-decimal.ts]" value="import { Component } from '@angular/core';
import { NgIf } from '@angular/common';
import { NgbRatingModule } from '@ng-bootstrap/ng-bootstrap';

@Component({
	selector: 'ngbd-rating-decimal',
	standalone: true,
	imports: [NgbRatingModule, NgIf],
	templateUrl: './rating-decimal.html',
	styles: [
		`
			i {
				position: relative;
				display: inline-block;
				font-size: 2.5rem;
				padding-right: 0.1rem;
				color: #d3d3d3;
			}

			.filled {
				color: red;
				overflow: hidden;
				position: absolute;
				top: 0;
				left: 0;
			}
		`,
	],
})
export class NgbdRatingDecimal {
	currentRate = 3.14;

	ariaValueText(current: number, max: number) {
		return `${current} out of ${max} hearts`;
	}
}
">

  </form>


8736DC35CCD9FFB9228FAFD427EB52 * ___list0, const RuntimeMethod* method)
{
	((  void (*) (Enumerator_tA27E2343069402A698ECAD46C2DC47ACD7786618 *, List_1_t1BB31D71CB8736DC35CCD9FFB9228FAFD427EB52 *, const RuntimeMethod*))Enumerator__ctor_m7B6DEA1307339A5CA3176F11511C12D8B8D34685_gshared)(__this, ___list0, method);
}
// System.Void System.Collections.Generic.List`1/Enumerator<UnityEngine.RaycastHit2D>::.ctor(System.Collections.Generic.List`1<T>)
inline void Enumerator__ctor_m317F666D9E9D18DB6E90C6C29E56829C7651FF5B (Enumerator_tD560D253141BCDFD156853DB97521A047D18CB72 * __this, List_1_t0F62CCE949E86085F8C12C989DB33BF40F2B73A9 * ___list0, const RuntimeMethod* method)
{
	((  void (*) (Enumerator_tD560D253141BCDFD156853DB97521A047D18CB72 *, List_1_t0F62CCE949E86085F8C12C989DB33BF40F2B73A9 *, const RuntimeMethod*))Enumerator__ctor_m317F666D9E9D18DB6E90C6C29E56829C7651FF5B_gshared)(__this, ___list0, method);
}
// System.Void System.Collections.Generic.List`1/Enumerator<UnityEngine.TextCore.GlyphRect>::.ctor(System.Collections.Generic.List`1<T>)
inline void Enumerator__ctor_m1AD818C266B9FFEF9990B29BE1330D7326F08990 (Enumerator_tC98BCACC12E1DFB3B149B73715A0FBE3C8B049C3 * __this, List_1_tD87292C3DA9A1BCF7BE7A6A63897ABF69A015D65 * ___list0, const RuntimeMethod* method)
{
	((  void (*) (Enumerator_tC98BCACC12E1DFB3B149B73715A0FBE3C8B049C3 *, List_1_tD87292C3DA9A1BCF7BE7A6A63897ABF69A015D65 *, const RuntimeMethod*))Enumerator__ctor_m1AD818C266B9FFEF9990B29BE1330D7326F08990_gshared)(__this, ___list0, method);
}
// System.Void System.Collections.Generic.List`1/Enumerator<UnityEngine.UICharInfo>::.ctor(System.Collections.Generic.List`1<T>)
inline void Enumerator__ctor_mB5B0B5CEA64685EABCA326923B24750730B1C409 (Enumerator_tC74B83EBD6E429004D77BE34197889A60AE87C4F * __this, List_1_tD850FBA632A52824016AAA9B3748BA38F51E087E * ___list0, const RuntimeMethod* method)
{
	((  void (*) (Enumerator_tC74B83EBD6E429004D77BE34197889A60AE87C4F *, List_1_tD850FBA632A52824016AAA9B3748BA38F51E087E *, const RuntimeMethod*))Enumerator__ctor_mB5B0B5CEA64685EABCA326923B24750730B1C409_gshared)(__this, ___list0, method);
}
// System.Void System.Collections.Generic.List`1/Enumerator<UnityEngine.UIElements.FocusController/FocusedElement


e one of `epsilon`, `sample` or"
            " `v_prediction`  for the DDPMScheduler."
        )

    # 3. Clip or threshold "predicted x_0"
    if self.config.thresholding:
        pred_original_sample = self._threshold_sample(pred_original_sample)
    elif self.config.clip_sample:
        pred_original_sample = pred_original_sample.clamp(
            -self.config.clip_sample_range, self.config.clip_sample_range
        )

    noise_thresholded = (sample - (alpha_prod_t ** 0.5) * pred_original_sample) / (beta_prod_t ** 0.5)
    return noise_thresholded
"""


    #0
        bne     setup_curbuf_x_slow
        dec     load_next_hs+2
        dec     load_next_ls+2
        dec     store_next_hs+2
        dec     store_next_ls+2
        dec     wordcnt+1
        bpl     setup_curbuf_x_slow
init_done:
        rts
.endproc

.segment "LC"

.proc init_pass
        ; Set the output buffer pointers (even columns)
        ; Low byte has to be set as we move in the
        ; output buffer by 320 at a time, it won't
        ; stay zero.
        sty     _decode_row::dest0a+1
        sty     _decode_row::dest0b+1
        sty     _decode_row::dest0c+1
        sty     _decode_row::dest0d+1
        inx                       ; Start at page 2
        stx     _decode_row::dest0a+2
        stx     _decode_row::dest0b+2
        stx     _decode_row::dest0c+2
        stx     _decode_row::dest0d+2

        ; and odd columns
        iny
        bne     :+
        inx
:       sty     _decode_row::dest1a+1
        sty     _decode_row::dest1b+1
        sty     _decode_row::dest1c+1
        sty     _decode_row::dest1d+1
        stx     _decode_row::dest1a+2
        stx     _decode_row::dest1b+2
        stx     _decode_row::dest1c+2
        stx     _decode_row::dest1d+2

        ; factor<<7: 00000000 ABCDEFGH becomes 0ABCDEFG H0000000
        lda     _factor
        lsr     a                   ; shift low byte >>1, (lose low bit to carry),
        tax                         ; move what remains to high byte (0ABCDEFG)
        lda     #0                  ; reinit low byte to zero,
        ror     a                   ; put initial low bit back to high bit of low byte

        ; val0 = next_line[WIDTH+1] = factor<<7
        stx     _next_line_h+(WIDTH+1)
        stx     val0+1
        sta     _next_line_l+(WIDTH+1)
        sta     val0

        ; tree = 1,
        lda     #1
        sta     tree

        ; col = WIDTH
        lda     #<(WIDTH)
        sta     col
        ldx     #>(WIDTH)
        stx     colh

        ; Init the numerous patched locations
        ; Worth the ugliness as there are 54
        ; locations, and we run that path
        ; 320*120*2 times so doing $nnnn,y
        ; instead of ($nn), y we spare:
        ; (320*120*2)*(2*54): 7 SECONDS
        ; (and spend only 0.165s shifting
        ; the high bytes, only 120*2 times)
        ldx     #>(_next_line_h+256)
        lda     #>(_next_line_l+256)
        jmp     set_buf_pages
.endproc

.proc dec_buf_pages
        ; Decrement output buffer pointers by one page,
        dec     colh
        dec     _decode_row::dest0a+2
        dec     _decode_row::dest0b+2
        dec     _decode_row::dest0c+2
        dec     _decode_row::dest0d+2
        dec     _decode_row::dest1a+2
        dec     _decode_row::dest1b+2
        dec     _decode_row::dest1c+2
        dec     _decode_row::dest1d+2

        ; Load next_line[] first pages addresses,
        ldx     #>(_next_line_h)
        lda     #>(_next_line_l)
        ; Fallthrough to set_buf_pages
.endproc

.proc set_buf_pages
        ; Store it everywhere
        stx     _decode_row::next0ha+2
        stx


return number + '일';\n                case 'M':\n                    return number + '월';\n                case 'w':\n                case 'W':\n                    return number + '주';\n                default:\n                    return number;\n            }\n        },\n        meridiemParse: /오전|오후/,\n        isPM: function (token) {\n            return token === '오후';\n        },\n        meridiem: function (hour, minute, isUpper) {\n            return hour < 12 ? '오전' : '오후';\n        },\n    });\n\n    return ko;\n\n})));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/moment/locale/ko.js\n// module id = 367\n// module chunks = 0","//! moment.js locale configuration\n//! locale : Kurdish [ku]\n//! author : Shahram Mebashar : https://github.com/ShahramMebashar\n\n;(function (global, factory) {\n   typeof exports === 'object' && typeof module !== 'undefined'\n       && typeof require === 'function' ? factory(require('../moment')) :\n   typeof define === 'function' && define.amd ? define(['../moment'], factory) :\n   factory(global.moment)\n}(this, (function (moment) { 'use strict';\n\n    //! moment.js locale configuration\n\n    var symbolMap = {\n            1: '١',\n            2: '٢',\n            3: '٣',\n            4: '٤',\n            5: '٥',\n            6: '٦',\n            7: '٧',\n            8: '٨',\n            9: '٩',\n            0: '٠',\n        },\n        numberMap = {\n            '١': '1',\n            '٢': '2',\n            '٣': '3',\n            '٤': '4',\n            '٥': '5',\n            '٦': '6',\n            '٧': '7',\n            '٨': '8',\n            '٩': '9',\n            '٠': '0',\n        },\n        months = [\n            'کانونی دووەم',\n            'شوبات',\n            'ئازار',\n            'نیسان',\n            'ئایار',\n            'حوزەیران',\n            'تەمموز',\n            'ئاب',\n            'ئەیلوول',\n            'تشرینی یەكەم',\n            'تشرینی دووەم',\n            'كانونی یەکەم',\n        ];\n\n    var ku = moment.defineLocale('ku', {\n        months: months,\n        monthsShort: months,\n        weekdays: 'یه‌كشه‌ممه_دووشه‌ممه_سێشه‌ممه_چوارشه‌ممه_پێنجشه‌ممه_هه‌ینی_شه‌ممه'.split(\n            '_'\n        ),\n        weekdaysShort: 'یه‌كشه‌م_دووشه‌م_سێشه‌م_چوارشه‌م_پێنجشه‌م_هه‌ینی_شه‌ممه'.split(\n            '_'\n        ),\n        weekdaysMin: 'ی_د_س_چ_پ_ه_ش'.split('_'),\n        weekdaysParseExact: true,\n        longDateFormat: {\n            LT: 'HH:mm',\n


from dataclasses import dataclass
from typing import Any, List

@dataclass
class ReproducOpt:
    seed: int
    benchmark: bool
    deterministic: bool

@dataclass
class NetworkOpt:
    name: str
    network_param: Any

@dataclass
class TrainOpt:
  batch_size: int
  total_epoch: int
  time_window: int

@dataclass
class TsGAEopt:
    dir_name: str
    task_name: str
    optimizer: Any
    reproduc: ReproducOpt
    network: NetworkOpt
    train: TrainOpt
    log: Any
    causal_thres: str

@dataclass
class MultiCADopt:
    dir_name: str
    task_name: str

    @dataclass
    class MultiCADargs:
        n_nodes: int
        input_step: int
        window_step: int
        stride: int
        batch_size: int
        sample_per_epoch: int
        data_dim: int
        total_epoch: int

        patience: int
        warmup: Any

        show_graph_every: int
        val_every: int

        n_groups: int
        group_policy: Any
        causal_thres: str

        @dataclass
        class data_pred:
            model: str
            merge_policy: str
            lr_data_start: float
            lr_data_end: float
            weight_decay: int
            prob: bool

        @dataclass
        class graph_discov:
            lr_graph_start: float
            lr_graph_end: float
            lambda_s_start: float
            lambda_s_end: float
            tau_start: float
            tau_end: float
            disable_bwd: bool
            separate_bwd: bool
            disable_ind: bool
            disable_graph: bool
            use_true_graph: bool

    reproduc: ReproducOpt
    log: Any


_position(source_pos)
    az, el = azimuth(source_pos), elevation(source_pos)

    # points near the poles have indeterminate azimuth; assume 0
    if np.abs(el) > 90 - 1e-5:
        az = 0

    return local_coordinate_system(az, el)

def cart_on_basis(basis, az, el):
    """Polar to Cartesian in radians with no distance, in a given basis."""
    cart_pos_rel = np.array([
        np.sin(az) * np.cos(el),
        np.cos(az) * np.cos(el),
        np.sin(el)]).T

    return np.dot(cart_pos_rel, basis)

def azimuth_elevation_on_basis(basis, vsource_pos):
    """Cartesian to polar in radians, in a given basis, assuming unit-length vectors."""
    # project onto each basis
    components = np.dot(vsource_pos, basis.T)

    # clip components to keep arcsin happy
    components = np.clip(components, -1.0, 1.0)

    azimuth = np.arctan2(components[..., 0],   # right
                         components[..., 1])   # forward
    elevation = np.arcsin(components[..., 2])  # up

    return azimuth, elevation


yle: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  font-family: 'afterlogic';
  /* Better Font Rendering =========== */

  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.file .icon.play:before {
  content: "\e677";
  display: block;
  border-radius: 31px;
  box-shadow: 0 0 1px 1px rgba(0, 0, 0, 0.5);
  overflow: hidden;
}
.file .icon.play:hover {
  opacity: 1;
}
/*=== END Files CSS ===*//*=== Folder offsets CSS ===*/
.folders .title {
  padding-left: 16px !important;
}
html.rtl .folders .title {
  padding-left: 0px !important;
  padding-right: 16px !important;
}
.folders .children .title {
  padding-left: 32px !important;
}
html.rtl .folders .children .title {
  padding-left: 0px !important;
  padding-right: 16px !important;
}
.folders .children .children .title {
  padding-left: 48px !important;
}
html.rtl .folders .children .children .title {
  padding-left: 0px !important;
  padding-right: 16px !important;
}
.folders .children .children .children .title {
  padding-left: 64px !important;
}
html.rtl .folders .children .children .children .title {
  padding-left: 0px !important;
  padding-right: 16px !important;
}
.folders .children .children .children .children .title {
  padding-left: 80px !important;
}
html.rtl .folders .children .children .children .children .title {
  padding-left: 0px !important;
  padding-right: 16px !important;
}
.folders .children .children .children .children .children .title {
  padding-left: 96px !important;
}
html.rtl .folders .children .children .children .children .children .title {
  padding-left: 0px !important;
  padding-right: 16px !important;
}
.folders .children .children .children .children .children .children .title {
  padding-left: 112px !important;
}
html.rtl .folders .children .children .children .children .children .children .title {
  padding-left: 0px !important;
  padding-right: 16px !important;
}
.folders .children .children .children .children .children .children .children .title {
  padding-left: 128px !important;
}
html.rtl .folders .children .children .children .children .children .children .children .title {
  padding-left: 0px !important;
  padding-right: 16px !important;
}
.folders .children .children .children .children .children .children .children .children .title {
  padding-left: 144px !important;
}
html.rtl .folders .children .children .children .children .children .children .children .children .title {
  padding-left: 0px !important;
  padding-right: 16px !important;
}
.folders .children .children .children .children .children .children .children .children .children .title {