MI_LENGTH].try_into().unwrap();
        let odb_mi = match endianness {
            Endianness::LittleEndian => u16::from_le_bytes(odb_mi),
            Endianness::BigEndian => u16::from_be_bytes(odb_mi),
        };
        if odb_mi != ODB_MI {
            return Err(TryFileViewFromSliceError::BadEorMi);
        }

        let offset = ODB_ID_LENGTH + ODB_MI_LENGTH;
        let final_run_num = footer[offset..][..ODB_RUN_NUMBER_LENGTH]
            .try_into()
            .unwrap();
        let final_run_num = match endianness {
            Endianness::LittleEndian => u32::from_le_bytes(final_run_num),
            Endianness::BigEndian => u32::from_be_bytes(final_run_num),
        };
        if final_run_num != init_run_num {
            return Err(TryFileViewFromSliceError::RunNumberMismatch);
        }

        let offset = ODB_ID_LENGTH + ODB_MI_LENGTH + ODB_RUN_NUMBER_LENGTH + ODB_TIME_STAMP_LENGTH;
        let size = footer[offset..][..ODB_SIZE_LENGTH].try_into().unwrap();
        let size: usize = match endianness {
            Endianness::LittleEndian => u32::from_le_bytes(size).try_into().unwrap(),
            Endianness::BigEndian => u32::from_be_bytes(size).try_into().unwrap(),
        };
        if footer.len() != ODB_HEADER_LENGTH + size {
            return Err(TryFileViewFromSliceError::FinOdbSizeMismatch);
        }

        Ok(FileView {
            slice: buffer,
            endianness,
        })
    }
}
impl<'a> IntoIterator for &'a FileView<'a> {
    type Item = EventView<'a>;
    type IntoIter = EventViews<'a>;

    fn into_iter(self) -> Self::IntoIter {
        let offset = ODB_ID_LENGTH + ODB_MI_LENGTH + ODB_RUN_NUMBER_LENGTH + ODB_TIME_STAMP_LENGTH;
        let size = self.slice[offset..][..ODB_SIZE_LENGTH].try_into().unwrap();
        let size: usize = match self.endianness {
            Endianness::LittleEndian => u32::from_le_bytes(size).try_into().unwrap(),
            Endianness::BigEndian => u32::from_be_bytes(size).try_into().unwrap(),
        };

        let events = &self.slice[ODB_HEADER_LENGTH + size..];
        match self.endianness {
            Endianness::LittleEndian => EventViews::from_le_bytes(events),
            Endianness::BigEndian => EventViews::from_be_bytes(events),
        }
    }
}

#[cfg(test)]
mod tests;
<filename>perftest/vs-cxx/build.rs
extern crate protoc_rust;

fn main() {
    protoc_rust::Args::new()
        .out_dir(".")
        .input("perftest_data.proto")
        .run()
        .expect("protoc");
}
use std::ops::{Index, IndexMut};

use cranelift::codegen::entity::EntityRef;
use quick_proc::QuickSer;

use super::sdbm::ID;

#[derive(Clone, Debug, QuickSer)]
pub struct Map<V> {
    indices: Vec<u32>,
    cache: Vec<MapEntry<V>>,
}

#[derive(Clone, Debug, Default, QuickSer)]
pub struct MapEntry<V>(ID, Option<V>, u32);

impl<V: Default> Default for Map<V> {
    fn default() -> Self {
        Self::new()
    }
}

impl<V: Default> Map<V> {
    pub fn new() -> Self {


currentWalletAddresses.isNotEmpty;

  /// Dynamic server capability check for Lightning Address management
  bool get supportsManagement => _cachedCapabilities?['payLinkManagement'] ?? true;

  /// Informative message for servers that don't support management
  String? get serverLimitationMessage {
    if (!supportsManagement) {
      final serverName = _getServerDisplayName();
      return '$serverName does not allow managing Lightning Addresses from the app.\n\n'
             'To create Lightning Addresses:\n'
             '• Go to the server web interface\n'
             '• Access the LNURLp extension\n'
             '• Create your Lightning Address\n\n'
             'Chispa can resolve existing Lightning Addresses.';
    }
    return null;
  }

  String _getServerDisplayName() {
    if (_serverUrl.contains('btclake.org')) return 'BTC Lake';
    if (_serverUrl.contains('lachispa.me')) return 'LaChispa';
    return 'This server';
  }

  /// Get default address for current wallet with fallback to first available
  LNAddress? get defaultAddress {
    final defaultAddr = _currentWalletAddresses.where((addr) => addr.isDefault).firstOrNull;
    if (defaultAddr != null) return defaultAddr;

    return _currentWalletAddresses.isNotEmpty ? _currentWalletAddresses.first : null;
  }

  /// Get default address for any wallet ID
  LNAddress? getDefaultAddressForWallet(String walletId) {
    final walletAddresses = _allAddresses.where((addr) => addr.walletId == walletId).toList();
    final defaultAddr = walletAddresses.where((addr) => addr.isDefault).firstOrNull;
    if (defaultAddr != null) return defaultAddr;

    return walletAddresses.isNotEmpty ? walletAddresses.first : null;
  }

  /// Handle automatic LN Address switching when wallet changes
  Future<void> onWalletChanged(String newWalletId) async {
    if (_currentWalletId == newWalletId) return;

    print('[LN_ADDRESS_PROVIDER] Cambio de wallet detectado: $_currentWalletId -> $newWalletId');

    await _ensureCacheLoaded();

    await setCurrentWallet(newWalletId);

    final defaultAddr = getDefaultAddressForWallet(newWalletId);

    if (defaultAddr != null) {
      print('[LN_ADDRESS_PROVIDER] LN Address por defecto encontrada: ${defaultAddr.fullAddress} (isDefault: ${defaultAddr.isDefault})');
    } else {
      print('[LN_ADDRESS_PROVIDER] No hay LN Address por defecto para wallet: $newWalletId');
    }

    notifyListeners();
  }

  void setAuthHeaders(String invoiceKey, String adminKey) {
    _lnAddressService.setAuthHeaders(invoiceKey, adminKey);
  }

  void setWalletAuth(String adminKey) {
    _lnAddressService.setWalletAuthHeaders(adminKey);
  }

  /// Check server capabilities through actual API testing
  Future<Map<String, bool>> checkServerCapabilities() async {
    final capabilities = {
      'payLinkManagement': false,  // Create/manage pay links
      'lightningResolution': false, // Resolve existing Lightning Addresses
    };

    try {
      print('[LN_ADDRESS_PROVIDER] 🔍 Verifying REAL server capabilities: $_serverUrl');

      print('[LN_ADDRESS_PROVIDER] 🧪 Testing pay link management...');
      try {
        capabilities['payLinkManagement'] = await _lnAddressService.checkExtensionAvailability();
        print('[LN_ADDRESS_PROVIDER] ✅ Pay Link Management: ${capabilities['payLinkManagement']}');
      } catch (e) {
        print('[LN_ADDRESS_PROVIDER] ❌ Pay Link Management failed: $e');
        capabilities['payLinkManagement'] = false;
      }

      print('[LN_ADDRESS_PROVIDER] 🧪 Testing Lightning Address resolution...');
      try {


RIG, L
	daddu	BO, B,     TEMP

	dsubu	TEMP, K, KK

	LD	a1,  0 * SIZE(AO)
	MTC	$0,  c11
	LD	a2,  1 * SIZE(AO)
	MOV	c21, c11
	LD	a5,  4 * SIZE(AO)

	LD	b1,  0 * SIZE(BO)
	MOV	c12, c11
	LD	b2,  1 * SIZE(BO)
	MOV	c22, c11
	LD	b3,  2 * SIZE(BO)
	LD	b5,  4 * SIZE(BO)
	dsra	L,  TEMP, 2
	LD	b6,  8 * SIZE(BO)
	LD	b7, 12 * SIZE(BO)

	blez	L, .L75
	NOP
#endif
	.align	3

.L72:
	LD	a1,  0 * SIZE(AO)
	LD	a2,  1 * SIZE(AO)
	LD	b1,  0 * SIZE(BO)

	MADD	c11, c11, a1, b1
	MADD	c12, c12, a2, b1

	LD	a1,  2 * SIZE(AO)
	LD	a2,  3 * SIZE(AO)
	LD	b1,  1 * SIZE(BO)

	MADD	c11, c11, a1, b1
	MADD	c12, c12, a2, b1

	LD	a1,  4 * SIZE(AO)
	LD	a2,  5 * SIZE(AO)
	LD	b1,  2 * SIZE(BO)

	MADD	c11, c11, a1, b1
	MADD	c12, c12, a2, b1

	LD	a1,  6 * SIZE(AO)
	LD	a2,  7 * SIZE(AO)
	LD	b1,  3 * SIZE(BO)

	MADD	c11, c11, a1, b1
	MADD	c12, c12, a2, b1

	daddiu	L, L, -1
	daddiu	AO, AO,  8 * SIZE
	bgtz	L, .L72
	daddiu	BO, BO,  4 * SIZE
	.align 3

.L75:
#if defined(LT) || defined(RN)
	andi	L, KK,  3
#else
	andi	L, TEMP, 3
#endif
	NOP
	blez	L, .L78
	NOP
	.align	3

.L76:
	LD	a1,  0 * SIZE(AO)
	LD	a2,  1 * SIZE(AO)
	LD	b1,  0 * SIZE(BO)

	MADD	c11, c11, a1, b1
	MADD	c12, c12, a2, b1

	daddiu	L, L, -1
	daddiu	AO, AO,  2 * SIZE
	bgtz	L, .L76
	daddiu	BO, BO,  1 * SIZE

.L78:
	ADD	c11, c11, c21
	ADD	c12, c12, c22

#if defined(LN) || defined(RT)
#ifdef LN
	daddiu	TEMP, KK, -2
#else
	daddiu	TEMP, KK, -1
#endif

	dsll	L,    TEMP, 1 + BASE_SHIFT
	dsll	TEMP, TEMP, 0 + BASE_SHIFT
	daddu	AO, AORIG, L
	daddu	BO, B,     TEMP
#endif

#if defined(LN) || defined(LT)
	LD	b1,  0 * SIZE(BO)
	LD	b2,  1 * SIZE(BO)

	SUB	c11, b1, c11
	SUB	c12, b2, c12
#else
	LD	b1,  0 * SIZE(AO)
	LD	b2,  1 * SIZE(AO)

	SUB	c11, b1, c11
	SUB	c12, b2, c12
#endif


******************************************************/
import 'dart:convert';

import 'package:intl/intl.dart';
import 'package:fenix/src/model/model.dart';

class Produto {
	int id;
	int idProdutoSubgrupo;
	int idProdutoMarca;
	int idProdutoUnidade;
	String nome;
	String descricao;
	String gtin;
	String codigoInterno;
	double valorCompra;
	double valorVenda;
	String ncm;
	double estoqueMinimo;
	double estoqueMaximo;
	double quantidadeEstoque;
	DateTime dataCadastro;
	ProdutoSubgrupo produtoSubgrupo;
	ProdutoMarca produtoMarca;
	ProdutoUnidade produtoUnidade;

	Produto({
			this.id,
			this.idProdutoSubgrupo,
			this.idProdutoMarca,
			this.idProdutoUnidade,
			this.nome,
			this.descricao,
			this.gtin,
			this.codigoInterno,
			this.valorCompra,
			this.valorVenda,
			this.ncm,
			this.estoqueMinimo,
			this.estoqueMaximo,
			this.quantidadeEstoque,
			this.dataCadastro,
			this.produtoSubgrupo,
			this.produtoMarca,
			this.produtoUnidade,
		});

	static List<String> campos = <String>[
		'ID',
		'NOME',
		'DESCRICAO',
		'GTIN',
		'CODIGO_INTERNO',
		'VALOR_COMPRA',
		'VALOR_VENDA',
		'NCM',
		'ESTOQUE_MINIMO',
		'ESTOQUE_MAXIMO',
		'QUANTIDADE_ESTOQUE',
		'DATA_CADASTRO',
	];

	static List<String> colunas = <String>[
		'Id',
		'Nome',
		'Descrição',
		'GTIN',
		'Código Interno',
		'Valor Compra',
		'Valor Venda',
		'NCm',
		'Estoque Mínimo',
		'Estoque Máximo',
		'Quantidade em Estoque',
		'Data de Cadastro',
	];

	Produto.fromJson(Map<String, dynamic> jsonDados) {
		id = jsonDados['id'];
		idProdutoSubgrupo = jsonDados['idProdutoSubgrupo'];
		idProdutoMarca = jsonDados['idProdutoMarca'];
		idProdutoUnidade = jsonDados['idProdutoUnidade'];
		nome = jsonDados['nome'];
		descricao = jsonDados['descricao'];
		gtin = jsonDados['gtin'];
		codigoInterno = jsonDados['codigoInterno'];
		valorCompra = jsonDados['valorCompra'] != null ? jsonDados['valorCompra'].toDouble() : null;
		valorVenda = jsonDados['valorVenda'] != null ? jsonDados['valorVenda'].toDouble() : null;
		ncm = jsonDados['ncm'];
		estoqueMinimo = jsonDados['estoqueMinimo'] != null ? jsonDados['estoqueMinimo'].toDouble() : null;
		estoqueMaximo = jsonDados['estoqueMaximo'] != null ? jsonDados['estoqueMaximo'].toDouble() : null;
		quantidadeEstoque = jsonDados['quantidadeEstoque'] != null ? jsonDados['quantidadeEstoque'].toDouble() : null;
		dataCadastro = jsonDados['dataCadastro'] != null ? DateTime.tryParse(jsonDados['dataCadastro']) : null;
		produtoSubgrupo = jsonDados['produtoSubgrupo'] == null ? null : new ProdutoSubgrupo.fromJson(jsonDados['produtoSubgrupo']);
		produtoMarca = jsonDados['produtoMarca'] == null ? null : new ProdutoMarca.fromJson(jsonDados['produtoMarca']);
		produtoUnidade = jsonDados['produtoUnidade'] == null ? null : new ProdutoUnidade.fromJson(jsonDados['produtoUnidade']);
	}

	Map<String, dynamic> get toJson {
		Map<String, dynamic> jsonDados = new Map<String, dynamic>();

		jsonDados['id'] = this.id ?? 0;
		jsonDados['idProdutoSubgrupo'] = this.idProdutoSubgrupo ?? 0;
		jsonDados['idProdutoMarca'] = this.idProdutoMarca ?? 0;
		jsonDados['idProdutoUnidade'] = this.idProdutoUnidade ?? 0;
		jsonDados['nome'] = this.nome;
		jsonDados['descricao'] = this.descricao;
		jsonDados['gtin'] = this.gtin;
		jsonDados['codigoInterno'] = this.codigoInterno;
		jsonDados['valorCompra'] = this.valorCompra;


1px;
  }
  .euiHeaderSectionItem--borderRight:after {
    width: 1px;
    left: auto;
    right: 0;
  }
  @media only screen and (max-width: 574px) {
    .euiHeaderSectionItem {
      min-width: 36px;
    }
    .euiHeaderSectionItem--borderLeft:after,
    .euiHeaderSectionItem--borderRight:after {
      display: none;
    }
  }
  .euiHeaderSectionItemButton {
    position: relative;
    height: 48px;
    min-width: 48px;
    text-align: center;
    font-size: 0;
  }
  .euiHeaderSectionItemButton__notification {
    position: absolute;
  }
  .euiHeaderSectionItemButton__notification--dot {
    top: 0;
    right: 0;
    stroke: #fff;
  }
  .euiHeaderSectionItemButton__notification--badge {
    top: 9%;
    right: 9%;
    box-shadow: 0 0 0 1px #fff;
  }
  .euiHeaderSectionItemButton__content {
    display: inline-block;
  }
  @media only screen and (max-width: 574px) {
    .euiHeaderSectionItemButton {
      min-width: 36px;
    }
    .euiHeaderSectionItemButton__notification.euiHeaderSectionItemButton__notification--dot {
      width: 16px;
      height: 16px;
      top: 9%;
    }
  }
  .euiHealth {
    display: inline-block;
  }
  .euiHealth--textSizeXS {
    font-size: 12px;
    font-size: 0.75rem;
    line-height: 1.5;
  }
  .euiHealth--textSizeS {
    font-size: 14px;
    font-size: 0.875rem;
    line-height: 1.5;
  }
  .euiHealth--textSizeM {
    font-size: 18px;
    font-size: 1.125rem;
    line-height: 1.5;
  }
  .euiHealth--textSizeInherit {
    font-size: inherit;
  }
  .euiHorizontalRule {
    border: none;
    height: 1px;
    background-color: #d3dae6;
    flex-shrink: 0;
    flex-grow: 0;
  }
  .euiHorizontalRule.euiHorizontalRule--full {
    width: 100%;
  }
  .euiHorizontalRule.euiHorizontalRule--half {
    width: 50%;
    margin-left: auto;
    margin-right: auto;
  }
  .euiHorizontalRule.euiHorizontalRule--quarter {
    width: 25%;
    margin-left: auto;
    margin-right: auto;
  }
  .euiHorizontalRule--marginXSmall {
    margin: 8px 0;
  }
  .euiHorizontalRule--marginSmall {
    margin: 12px 0;
  }
  .euiHorizontalRule--marginMedium {
    margin: 16px 0;
  }
  .euiHorizontalRule--marginLarge {
    margin: 24px 0;
  }
  .euiHorizontalRule--marginXLarge {
    margin: 32px 0;
  }
  .euiHorizontalRule--marginXXLarge {
    margin: 40px 0;
  }
  .euiIcon {
    flex-shrink: 0;
    display: inline-block;
    vertical-align: middle;
    fill: currentColor;
    transform: translate(0, 0);
  }
  .euiIcon:focus {
    opacity: 1;
    background: #e6f0f8;
  }
  .euiIcon--app {
    fill: #343741;
  }
  .euiIcon--app .euiIcon__fillSecondary {
    fill: #017d


using DG.Tweening;
using UnityEngine;

namespace Code.Weapon
{
    public class Weapon : MonoBehaviour
    {
        [SerializeField] private ParticleSystem _shootEffect;
        [SerializeField] private GameObject _pivot;
        [SerializeField] private GameObject _model;
        [SerializeField] private float _amplitude = 0.3f;
        [SerializeField] private float _duration = 0.5f;
        [SerializeField] private Ease _ease = Ease.InOutSine;

        private Tween _tween;
        private Vector3 _baseLocalPos;

        private void Awake()
        {
            _baseLocalPos = _pivot.transform.localPosition;
        }

        public GameObject Pivo


 byte in[] ) throws EncodingException
	{
		try {
			Writer strBuf = new StringBuilderWriter();
			encode(new ByteArrayInputStream(in), strBuf);
			return strBuf.toString();
		}catch (IOException e) {
			throw new EncodingException("encode error",  e);
		}
	}

	/**
	 * More efficient than super
	 *
	 * @param in
	 * @see Base64#encode(String)
	 * @since public since 0.9.33 with new params
	 */
	@Override
	public void encode(InputStream in, Writer strBuf) throws IOException
	{
		int buf[] = new int[3];
		int out[] = new int[4];
		int l = 0;
		while( true ) {
			int read = in.available();
			if( read == 0 )
				break;
			int i = 0;
			buf[0] = buf[1] = buf[2] = 0;
			while( read > 0 && i < 3 ) {
				buf[i] = in.read();
				if( buf[i] < 0 || buf[i] > 255 )
					throw new EncodingException( "Encoding supports only values 0..255 (" + buf[i] + ")" );
				i++;
				read--;
			}
			out[0] = encodeByte( ( buf[0] >> 2 ) & 63 );
			out[1] = encodeByte( ( ( buf[0] & 3 ) << 4 ) | ( ( buf[1] >> 4 ) & 15 ) );
			out[2] = encodeByte( ( ( buf[1] & 15 ) << 2 ) | ( ( buf[2] >> 6 ) & 3 ) );
			out[3] = encodeByte( buf[2] & 63 );
			strBuf.append( (char)out[0] );
			strBuf.append( (char)out[1] );
			if( i > 1 ) {
				strBuf.append( (char)out[2] );
			}
			else
				strBuf.append( "=" );
			if( i > 2 )
				strBuf.append( (char)out[3] );
			else
				strBuf.append( "=" );
			i += 3;
			l += 4;
			if( l >= 76 ) {
				strBuf.append( "\r\n" );
				l -= 76;
			}
		}
	}

	/**
	 * @param b
	 * @return Encoded single byte.
	 */
	private static int encodeByte(int b) {
		/*
	       0 A            17 R            34 i            51 z
	       1 B            18 S            35 j            52 0
	       2 C            19 T            36 k            53 1
	       3 D            20 U            37 l            54 2
	       4 E            21 V            38 m            55 3
	       5 F            22 W            39 n            56 4
	       6 G            23 X            40 o            57 5
	       7 H            24 Y            41 p            58 6
	       8 I            25 Z            42 q            59 7
	       9 J            26 a            43 r            60 8
	      10 K            27 b            44 s            61 9
	      11 L            28 c            45 t            62 +
	      12 M            29 d            46 u            63 /
	      13 N            30 e            47 v
	      14 O            31 f            48 w         (pad) =
	      15 P            32 g            49 x
	      16 Q            33 h            50 y
	      */
		if( b < 26 )
			b += 'A';
		else if( b < 52 )
			b += 'a' - 26;
		else if( b < 62 )
			b += '0' - 52;
		else if( b == 62 )
			b = '+';
		else
			b = '/';
		return b;
	}

	private static byte decodeByte( int c ) throws IOException {
		if (c < 0)
			throw new EOFException();
		byte b = (byte) (c & 0xff);
		if( b >= 'A' && b <= 'Z' )
			b -= 'A';
		else if( b


                        @ A[:, ii]
                    )

                    E[:, ii] = mu[ii] + dmu + AT

                E = post_process(E, self.infl, self.rot)
            stats.assess(k, ko, E=E)

def laplace_lklhd(xx):
    """Compute a Laplacian likelihood.

    Compute likelihood of xx wrt. the sampling distribution
    RVs.LaplaceParallelRV(C=I), i.e., for x in xx:
    p(x) = exp(-sqrt(2)*|x|_1) / sqrt(2).
    """
    logw = -np.sqrt(2) * np.sum(np.abs(xx), axis=1)
    logw -= logw.max()  # Avoid numerical error
    w = np.np.exp(logw)  # non-log
    w /= w.sum()  # normalize
    return w


tr':\n        // These tags are only valid with a few parents that have special child\n        // parsing rules -- if we're down here, then none of those matched and\n        // so we allow it only if we don't know what the parent is, as all other\n        // cases are invalid.\n        return parentTag == null;\n    }\n\n    return true;\n  };\n\n  /**\n   * Returns whether\n   */\n  var findInvalidAncestorForTag = function (tag, ancestorInfo) {\n    switch (tag) {\n      case 'address':\n      case 'article':\n      case 'aside':\n      case 'blockquote':\n      case 'center':\n      case 'details':\n      case 'dialog':\n      case 'dir':\n      case 'div':\n      case 'dl':\n      case 'fieldset':\n      case 'figcaption':\n      case 'figure':\n      case 'footer':\n      case 'header':\n      case 'hgroup':\n      case 'main':\n      case 'menu':\n      case 'nav':\n      case 'ol':\n      case 'p':\n      case 'section':\n      case 'summary':\n      case 'ul':\n      case 'pre':\n      case 'listing':\n      case 'table':\n      case 'hr':\n      case 'xmp':\n      case 'h1':\n      case 'h2':\n      case 'h3':\n      case 'h4':\n      case 'h5':\n      case 'h6':\n        return ancestorInfo.pTagInButtonScope;\n\n      case 'form':\n        return ancestorInfo.formTag || ancestorInfo.pTagInButtonScope;\n\n      case 'li':\n        return ancestorInfo.listItemTagAutoclosing;\n\n      case 'dd':\n      case 'dt':\n        return ancestorInfo.dlItemTagAutoclosing;\n\n      case 'button':\n        return ancestorInfo.buttonTagInScope;\n\n      case 'a':\n        // Spec says something about storing a list of markers, but it sounds\n        // equivalent to this check.\n        return ancestorInfo.aTagInScope;\n\n      case 'nobr':\n        return ancestorInfo.nobrTagInScope;\n    }\n\n    return null;\n  };\n\n  var didWarn = {};\n\n  validateDOMNesting = function (childTag, childText, ancestorInfo) {\n    ancestorInfo = ancestorInfo || emptyAncestorInfo;\n    var parentInfo = ancestorInfo.current;\n    var parentTag = parentInfo && parentInfo.tag;\n\n    if (childText != null) {\n      warning(childTag == null, 'validateDOMNesting: when childText is passed, childTag should be null');\n      childTag = '#text';\n    }\n\n    var invalidParent = isTagValidWithParent(childTag, parentTag) ? null : parentInfo;\n    var invalidAncestor = invalidParent ? null : findInvalidAncestorForTag(childTag, ancestorInfo);\n    var invalidParentOrAncestor = invalidParent || invalidAncestor;\n    if (!invalidParentOrAncestor) {\n      return;\n    }\n\n    var ancestorTag = invalidParentOrAncestor.tag;\n    var addendum = getCurrentFiberStackAddendum$6();\n\n    var warnKey = !!invalidParent + '|' + childTag + '|' + ancestorTag + '|' + addendum;\n    if (didWarn[warnKey]) {\n      return;\n    }\n    didWarn[warnKey] = true;\n\n    var tagDisplayName = childTag;\n    var whitespaceInfo = '';\n    if (childTag === '#text') {\n      if (/\\S/.test(childText)) {\n        tagDisplayName = 'Text nodes';\n      } else {\n        tagDisplayName = 'Whitespace text nodes';\n        whitespace


 Scenario {
  One_Event_Per_Day(1),
  Ten_Events_Per_Day(10);

  const Scenario(this.numberOfEvents);
  final int numberOfEvents;

  String getReportKey(Views view, ReportKeys key, int run) =>
      '${name.toLowerCase()}-${view.name}-${key.name}-$run';

  static String baseKeyFromReportKey(String key) {
    return key.split('-').take(3).join('-');
  }
}

enum ReportKeys { loadingEvents, navigation, scrolling, rescheduling, resizing }

enum Views { week, month, schedule }

const numberOfRuns = 3;

Future<void> main() {
  return integrationDriver(
    responseDataCallback: (data) async {
      if (data != null) {
        final average = {};

        final keys = [
          for (var run = 1; run <= numberOfRuns; run++)
            for (final scenario in Scenario.values)
              for (var view in Views.values)
                for (var key in ReportKeys.values)
                  scenario.getReportKey(view, key, run),
        ];

        print('\n=== Performance Profiling Summary ===');
        print('Total expected reports: ${keys.length}');
        print('Available data keys: ${data.keys.length}');
        print('\nProcessing reports...\n');

        for (final key in keys) {
          print('Processing: $key');
          if (!data.containsKey(key) || data[key] == null) {
            print('❌ Missing data for key: $key');
            continue;
          }

          print((data[key] as Map<String, dynamic>).length);

          final timeline = driver.Timeline.fromJson(
            data[key] as Map<String, dynamic>,
          );
          final timelineSummary = driver.TimelineSummary.summarize(timeline);
          final frameCount = timeline.events?.length ?? 0;
          await timelineSummary.writeTimelineToFile(
            key,
            pretty: true,
            includeSummary: true,
          );
          final metricsStr =
              '\n- Avg Build: ${timelineSummary.summaryJson['average_frame_build_time_millis']}ms'
              '\n- 90th Build: ${timelineSummary.summaryJson['90th_percentile_frame_build_time_millis']}ms'
              '\n- 99th Build: ${timelineSummary.summaryJson['99th_percentile_frame_build_time_millis']}ms'
              '\n- Worst Build: ${timelineSummary.summaryJson['worst_frame_build_time_millis']}ms'
              '\n- Missed Build Budget: ${timelineSummary.summaryJson['missed_frame_build_budget_count']}'
              '\n- Avg Rasterizer: ${timelineSummary.summaryJson['average_frame_rasterizer_time_millis']}ms'
              '\n- 90th Rasterizer: ${timelineSummary.summaryJson['90th_percentile_frame_rasterizer_time_millis']}ms'
              '\n- 99th Rasterizer: ${timelineSummary.summaryJson['99th_percentile_frame_rasterizer_time_millis']}ms'
              '\n- Worst Rasterizer: ${timelineSummary.summaryJson['worst_frame_rasterizer_time_millis']}ms'
              '\n- Missed Rasterizer Budget: ${timelineSummary.summaryJson['missed_frame_rasterizer_budget_count']}'
              '\n- Frame Count: ${timelineSummary.summaryJson['frame_count']}'
              '\n- Rasterizer Count: ${timelineSummary.summaryJson['frame_rasterizer_count']}'
              '\n- New Gen GC Count: ${timelineSummary.summaryJson['new_gen_gc_count']}'
              '\n- Old Gen GC Count: ${timelineSummary.summaryJson['old_gen_gc_count']}';

          final summary = {
            'average_frame_build_time_millis':
                timelineSummary.summaryJson['average_frame_build_time_millis'],
            '


2147483647 + 1 exceeds 32-bit signed max (2147483647), result is 2147483647
        ssataddTest(2147483647, 1, 32, 2147483647),
        // Saturation: -2147483648 + (-1) exceeds 32-bit signed min (-2147483648), result is -2147483648
        ssataddTest(-2147483648L, -1, 32, -2147483648L),
        // Saturation: Long.MAX_VALUE + 1 exceeds 64-bit signed max (Long.MAX_VALUE), result is Long.MAX_VALUE
        ssataddTest(Long.MAX_VALUE, 1, 64, Long.MAX_VALUE),
        // Saturation: Long.MIN_VALUE + (-1) exceeds 64-bit signed min (Long.MIN_VALUE), result is Long.MIN_VALUE
        ssataddTest(Long.MIN_VALUE, -1, 64, Long.MIN_VALUE)
    );
  }

  @TestFactory
  Stream<DynamicTest> usataddTests() {
    return runTests(
        // 1-bit unsigned addition: 0 + 0 = 0
        usataddTest(0x0, 0x0, 1, 0x0),
        // 1-bit unsigned addition: 0 + 1 = 1
        usataddTest(0x0, 0x1, 1, 0x1),
        // 1-bit unsigned addition with saturation: 1 + 1 exceeds 1-bit max (1), result is 1
        usataddTest(0x1, 0x1, 1, 0x1),
        // 2-bit unsigned addition: 1 + 2 = 3
        usataddTest(0x1, 0x2, 2, 0x3),
        // 2-bit unsigned addition with saturation: 2 + 2 exceeds 2-bit max (3), result is 3
        usataddTest(0x2, 0x2, 2, 0x3),
        // 3-bit unsigned addition: 3 + 4 = 7
        usataddTest(0x3, 0x4, 3, 0x7),
        // 3-bit unsigned addition with saturation: 4 + 4 exceeds 3-bit max (7), result is 7
        usataddTest(0x4, 0x4, 3, 0x7),
        // 8-bit unsigned addition: 100 + 27 = 127
        usataddTest(0x64, 0x1B, 8, 0x7F),
        // 8-bit unsigned addition with saturation: 200 + 100 exceeds 8-bit max (255), result is 255
        usataddTest(0xC8, 0x64, 8, 0xFF),
        // 16-bit unsigned addition: 30000 + 5000 = 35000
        usataddTest(0x7530, 0x1388, 16, 0x88B8),
        // 16-bit unsigned addition with saturation: 60000 + 10000 exceeds 16-bit max (65535), result is 65535
        usataddTest(0xEA60, 0x2710, 16, 0xFFFF),
        // 32-bit unsigned addition: 2000000000 + 1000000000 = 3000000000
        usataddTest(0x77359400, 0x3B9ACA00, 32, 0xB2D05E00L),
        // 32-bit unsigned addition with saturation: 3000000000 + 2000000000 exceeds 32-bit max (4294967295), result is 4294967295
        usataddTest(0xB8D6D800L, 0x77359400, 32, 0xFFFFFFFFL),
        // 64-bit unsigned addition: 5000000000000000000 + 4000000000000000000 = 9000000000000000000
        usataddTest(0x4563918244F40000L, 0x3782DACE9D900000L, 64, 0x7CE66C50E2840000L),
        // 64-bit unsigned addition with saturation: 9223372036854775807 + 9223372036854775807 exceeds 64-bit max (18446744073709551615), result is 18446744073709551615
        usataddTest(0x7FFFFFFFFFFFFFFFL, 0xFFFFFFFFFFFFFFF0L, 64, 0xFFFFFFFFFFFFFFFFL)
    );
  }

  @TestFactory
  Stream<DynamicTest> subTests() {
    return runTests(


 }

            // De-Initialization
            //--------------------------------------------------------------------------------------
            UnloadModel(model);     // Unload the model
            UnloadModel(cube);      // Unload the model
            UnloadShader(shader);   // Unload shader

            CloseWindow();              // Close window and OpenGL context
            //--------------------------------------------------------------------------------------

            return 0;
        }
    }
}


 ToastType } from '../../models/toast-message';

@Injectable()
export class ToastService {

  private toast$ = new Subject<ToastMessage>();

  constructor() { }

  /**
   * Get the Observable to subscribe to its events
   *
   * @returns {Observable<ToastMessage>}
   * @memberof ToastServiceService
   */
  getObservable() : Observable<ToastMessage> {
    return this.toast$.asObservable();
  }

  /**
   * Displays an informational message
   *
   * @param {string} message
   * @memberof ToastServiceService
   */
  info(message: string) : void {
    this.toast(ToastType.Info, message, 3000);
  }

  /**
   * Displays a warning message
   *
   * @param {string} message
   * @memberof ToastServiceService
   */
  warn(message: string) : void {
    this.toast(ToastType.Warning, message, 3000);

  }

  /**
   * Displays an error message
   *
   * @param {string} message
   * @memberof ToastServiceService
   */
  error(message: string) : void {
    this.toast(ToastType.Error, message, 6000);

  }

  /**
   * helper method to send the next data into the observable
   *
   * @param {ToastType} type
   * @param {string} message
   * @memberof ToastServiceService
   */
  toast(type: ToastType, message: string, msDuration: number) {
    this.toast$.next(<ToastMessage>{type: type, message: message, msDuration: msDuration});
  }

  /**
   * triggers the next data in the observable to be nothing
   *
   * @memberof ToastServiceService
   */
  clear() : void {
    this.toast$.next();
  }

}
/* Copyright (c) 2020 SAP SE or an SAP affiliate company. All rights reserved. */

import voca from 'voca';
import {
  reservedJSKeywords,
  reservedObjectPrototypeKeywords,
  reservedVdmKeywords
} from './name-formatting-reserved-key-words';

// FIXME: this function has a side effect and it is not obvious that the cache is updated
const applySuffixOnConflict = (separator: string) => (
  name: string,
  previouslyGeneratedNames: string[]
): string => {
  let newName = name;
  if (
    previouslyGeneratedNames.includes(name) ||
    reservedVdmKeywords.has(name) ||
    reservedObjectPrototypeKeywords.has(name)
  ) {
    newName = `${name}${separator}${nextSuffix(
      name,
      previouslyGeneratedNames
    )}`;
  }
  previouslyGeneratedNames.push(newName);
  return newName;
};

const applyPrefixOnJSReservedWords = (prefix: string) => (
  param: string
): string =>
  reservedJSKeywords.has(param) ? prefix + voca.capitalize(param) : param;

/**
 * @deprecated Since v1.22.0. This method changes the 'previouslyGeneratedNames' passed to it. Use [[UniqueNameFinder]] instead.
 */
export const applySuffixOnConflictUnderscore = applySuffixOnConflict('_');

/**
 * @deprecated  Since v1.22.0. This method changes the 'previouslyGeneratedNames' passed to it. Use [[UniqueNameFinder]] instead.
 */
export const applySuffixOnConflictDash = applySuffixOnConflict('-');

export const applyPrefixOnJsConflictParam = applyPrefixOnJSReservedWords('p');
/**
 * @deprecated  Since v1.25.0. Use [[applyPrefixOnJsConflictParam]] instead.
 */
export const applyPrefixOnJsConfictParam = applyPrefixOnJsConflictParam;
export const applyPrefixOnJsConflictFunctionImports = applyPrefixOnJSReserv


     }

            // Do a few final mixes of the hash to ensure the last few bytes are well-incorporated.

            h ^= h >> 13;
            h = IntegerUtilities.integerMultiplyLow32Bits(h, m);
            h ^= h >> 15;

            return h;
        }

        private static primes =
            [3, 7, 11, 17, 23, 29, 37, 47, 59, 71, 89, 107, 131, 163, 197, 239, 293, 353, 431, 521,
              631, 761, 919, 1103, 1327, 1597, 1931, 2333, 2801, 3371, 4049, 4861, 5839, 7013, 8419,
              10103, 12143, 14591, 17519, 21023, 25229, 30293, 36353, 43627, 52361, 62851, 75431,
              90523, 108631, 130363, 156437, 187751, 225307, 270371, 324449, 389357, 467237, 560689,
              672827, 807403, 968897, 1162687, 1395263, 1674319, 2009191, 2411033, 2893249, 3471899,
              4166287, 4999559, 5999471, 7199369];

        public static getPrime(min: number): number {
            for (var i = 0; i < Hash.primes.length; i++) {
                var num = Hash.primes[i];
                if (num >= min) {
                    return num;
                }
            }

            throw Errors.notYetImplemented();
        }

        public static expandPrime(oldSize: number): number {
            var num = oldSize << 1;
            if (num > 2146435069 && 2146435069 > oldSize) {
                // NOTE: 2146435069 fits in 31 bits.
                return 2146435069;
            }
            return Hash.getPrime(num);
        }

        public static combine(value: number, currentHash: number): number {
            // Ensure we stay within 31 bits.
            return (((currentHash << 5) + currentHash) + value) & 0x7FFFFFFF;
        }
    }
}import {Key} from '../keyspace';
import {WriteBackend} from '../backend';
import * as ops from '../ops';

export class StringWriteBackend implements WriteBackend {
  constructor(private _key: Key, private _backend: ops.WriteStringOps) {}

  withKey(key: Key): ops.WriteKeyOps {
    if (this._key.equals(key)) {
      return this._backend;
    } else {
      return new ops.WriteKeyNoop();
    }
  }

  withListAt(key: Key) {
    return new ops.WriteListNoop();
  }

  withStringAt(key: Key) {
    if (this._key.equals(key)) {
      return this._backend;
    } else {
      return new ops.WriteStringNoop();
    }
  }
}

export class ListWriteBackend implements WriteBackend {
  constructor(private _key: Key, private _backend: ops.WriteListOps) {}

  withKey(key: Key): ops.WriteKeyOps {
    if (this._key.equals(key)) {
      return this._backend;
    } else {
      return new ops.WriteKeyNoop();
    }
  }

  withStringAt(key: Key) {
    return new ops.WriteStringNoop();
  }

  withListAt(key: Key) {
    if (this._key.equals(key)) {
      return this._backend;
    } else {
      return new ops.WriteListNoop();
    }
  }
}
import { useMemo } from 'react';

import useToggle, { DispatchWithOptionalAction } from '../useToggle';

export type VoidHandler = () => void;

export interface UseBooleanHandlers {
  on: VoidHandler;
  off: VoidHandler;
  toggle: DispatchWithOptionalAction<boolean>;
}

export type UseBooleanResult = [boolean, UseBooleanHandlers];

/**
 *
 * @param initialValue boolean
 * @returns {UseBooleanResult<boolean>}
 */
function useBoolean(initialValue = false): UseBooleanResult {
  const [value, toggle] = useToggle(initialValue);

  const handlers = useMemo(
    () => ({
      toggle,
      on: () => toggle(true),
      off: () => toggle(false)
    }),
    [toggle


 this);
      await this.fetch(
        "https://game-domain.blum.codes/api/v1/daily-reward?offset=-420",
        "GET",
        this.token
      )
        .then(async () => {
          await this.fetch(
            "https://game-domain.blum.codes/api/v1/daily-reward?offset=-420",
            "POST",
            this.token
          )
            .then(async () => {
              await Helper.delay(
                1000,
                this.account,
                `Successfully Check In`,
                this
              );
              resolve();
            })
            .catch((err) => {
              reject(err);
            });
        })
        .catch(async (err) => {
          if (err.message.includes("Not Found")) {
            await Helper.delay(
              1000,
              this.account,
              `User Already Checked In`,
              this
            );
            resolve();
          } else {
            reject(err);
          }
        });
    });
  }
}
import { createLogger, format, transports } from "winston";
import fs from "fs";
const { combine, timestamp, printf, colorize } = format;

const customFormat = printf(({ level, message, timestamp }) => {
  return `${timestamp} [${level}]: ${message}`;
});

class Logger {
  constructor() {
    this.logger = createLogger({
      level: "debug",
      format: combine(
        timestamp({
          format: "YYYY-MM-DD HH:mm:ss",
        }),
        colorize(),
        customFormat
      ),
      transports: [new transports.File({ filename: "log/app.log" })],
      exceptionHandlers: [new transports.File({ filename: "log/app.log" })],
      rejectionHandlers: [new transports.File({ filename: "log/app.log" })],
    });
  }

  info(message) {
    this.logger.info(message);
  }

  warn(message) {
    this.logger.warn(message);
  }

  error(message) {
    this.logger.error(message);
  }

  debug(message) {
    this.logger.debug(message);
  }

  setLevel(level) {
    this.logger.level = level;
  }

  clear() {
    fs.truncate("log/app.log", 0, (err) => {
      if (err) {
        this.logger.error("Failed to clear the log file: " + err.message);
      } else {
        this.logger.info("Log file cleared");
      }
    });
  }
}

export default new Logger();
import { configDotenv } from "dotenv";
import { PuppeterCore } from "./src/core/puppeter-core.js";
import { Helper } from "./src/utils/helper.js";
import logger from "./src/utils/logger.js";

async function operation() {
  const puppeter = new PuppeterCore();
  try {
    await puppeter.initializePuppeterBrowser();
    await puppeter.initializingChat();
    const delay = process.env.DELAY_EACH_CHAT_IN_SECONDS * 1000;
    while (true) {
      await puppeter.sendingMessage();
      await Helper.delay(delay, "Delaying before sending next message");
    }
  } catch (error) {
    logger.info(error);
    await Helper.delay(5000);
    await puppeter.closeBrowser();
    await operation();
  }
}

async function startBot() {
  try {
    logger.info(`BOT STARTED\n`);
    await operation();
  } catch (error) {
    logger.info(`BOT STOPPED`);
    logger.error(JSON.stringify(error));
    throw error;
  }
}

(async () => {
  try {
    logger.clear(


fa-dot-circle-o{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-wheelchair{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-vimeo-square{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-turkish-lira,.fa-try{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-plus-square-o{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-space-shuttle{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-slack{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-envelope-square{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-wordpress{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-openid{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-institution,.fa-bank,.fa-university{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-mortar-board,.fa-graduation-cap{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-yahoo{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-google{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-reddit{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-reddit-square{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-stumbleupon-circle{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-stumbleupon{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-delicious{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-digg{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-pied-piper{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-pied-piper-alt{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-drupal{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-joomla{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-language{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-fax{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-building{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-child{*zoom:expression( this.runtimeStyle['zoom'] = '1',this.innerHTML = '');}.fa-paw{*zoom:expressi


oid
    Inst_VOP3__V_CVT_F16_U16::execute(GPUDynInstPtr gpuDynInst)
    {
        panicUnimplemented();
    } // execute
    // --- Inst_VOP3__V_CVT_F16_I16 class methods ---

    Inst_VOP3__V_CVT_F16_I16::Inst_VOP3__V_CVT_F16_I16(InFmt_VOP3A *iFmt)
        : Inst_VOP3A(iFmt, "v_cvt_f16_i16", false)
    {
        setFlag(ALU);
        setFlag(F16);
    } // Inst_VOP3__V_CVT_F16_I16

    Inst_VOP3__V_CVT_F16_I16::~Inst_VOP3__V_CVT_F16_I16()
    {
    } // ~Inst_VOP3__V_CVT_F16_I16

    // --- description from .arch file ---
    // D.f16 = int16_to_flt16(S.i16).
    // Supports denormals, rounding, exception flags and saturation.
    void
    Inst_VOP3__V_CVT_F16_I16::execute(GPUDynInstPtr gpuDynInst)
    {
        panicUnimplemented();
    } // execute
    // --- Inst_VOP3__V_CVT_U16_F16 class methods ---

    Inst_VOP3__V_CVT_U16_F16::Inst_VOP3__V_CVT_U16_F16(InFmt_VOP3A *iFmt)
        : Inst_VOP3A(iFmt, "v_cvt_u16_f16", false)
    {
        setFlag(ALU);
        setFlag(F16);
    } // Inst_VOP3__V_CVT_U16_F16

    Inst_VOP3__V_CVT_U16_F16::~Inst_VOP3__V_CVT_U16_F16()
    {
    } // ~Inst_VOP3__V_CVT_U16_F16

    // --- description from .arch file ---
    // D.u16 = flt16_to_uint16(S.f16).
    // Supports rounding, exception flags and saturation.
    void
    Inst_VOP3__V_CVT_U16_F16::execute(GPUDynInstPtr gpuDynInst)
    {
        panicUnimplemented();
    } // execute
    // --- Inst_VOP3__V_CVT_I16_F16 class methods ---

    Inst_VOP3__V_CVT_I16_F16::Inst_VOP3__V_CVT_I16_F16(InFmt_VOP3A *iFmt)
        : Inst_VOP3A(iFmt, "v_cvt_i16_f16", false)
    {
        setFlag(ALU);
        setFlag(F16);
    } // Inst_VOP3__V_CVT_I16_F16

    Inst_VOP3__V_CVT_I16_F16::~Inst_VOP3__V_CVT_I16_F16()
    {
    } // ~Inst_VOP3__V_CVT_I16_F16

    // --- description from .arch file ---
    // D.i16 = flt16_to_int16(S.f16).
    // Supports rounding, exception flags and saturation.
    void
    Inst_VOP3__V_CVT_I16_F16::execute(GPUDynInstPtr gpuDynInst)
    {
        panicUnimplemented();
    } // execute
    // --- Inst_VOP3__V_RCP_F16 class methods ---

    Inst_VOP3__V_RCP_F16::Inst_VOP3__V_RCP_F16(InFmt_VOP3A *iFmt)
        : Inst_VOP3A(iFmt, "v_rcp_f16", false)
    {
        setFlag(ALU);
        setFlag(F16);
    } // Inst_VOP3__V_RCP_F16

    Inst_VOP3__V_RCP_F16::~Inst_VOP3__


0, sxtw #2]
  433f14:	b9402b60 	ldr	w0, [x27, #40]
  433f18:	3100041f 	cmn	w0, #0x1
  433f1c:	54000040 	b.eq	433f24 <printf_positional+0x1f4>  // b.none
  433f20:	b820db9f 	str	wzr, [x28, w0, sxtw #2]
  433f24:	f9401f61 	ldr	x1, [x27, #56]
  433f28:	b4fffe81 	cbz	x1, 433ef8 <printf_positional+0x1c8>
  433f2c:	f100043f 	cmp	x1, #0x1
  433f30:	54fffd80 	b.eq	433ee0 <printf_positional+0x1b0>  // b.none
  433f34:	b9400b63 	ldr	w3, [x27, #8]
  433f38:	f943e0e0 	ldr	x0, [x7, #1984]
  433f3c:	b9803362 	ldrsw	x2, [x27, #48]
  433f40:	f90077a7 	str	x7, [x29, #232]
  433f44:	f8637805 	ldr	x5, [x0, x3, lsl #3]
  433f48:	d37ef442 	lsl	x2, x2, #2
  433f4c:	8b020263 	add	x3, x19, x2
  433f50:	aa1b03e0 	mov	x0, x27
  433f54:	8b020382 	add	x2, x28, x2
  433f58:	9101237b 	add	x27, x27, #0x48
  433f5c:	d63f00a0 	blr	x5
  433f60:	f94077a7 	ldr	x7, [x29, #232]
  433f64:	eb1b02df 	cmp	x22, x27
  433f68:	54fffce1 	b.ne	433f04 <printf_positional+0x1d4>  // b.any
  433f6c:	aa1303f6 	mov	x22, x19
  433f70:	f9405fb3 	ldr	x19, [x29, #184]
  433f74:	b4000578 	cbz	x24, 434020 <printf_positional+0x2f0>
  433f78:	d280001b 	mov	x27, #0x0                   	// #0
  433f7c:	90000382 	adrp	x2, 4a3000 <frame_hdr_cache+0x60>
  433f80:	928007e3 	mov	x3, #0xffffffffffffffc0    	// #-64
  433f84:	b87b7b80 	ldr	w0, [x28, x27, lsl #2]
  433f88:	7100141f 	cmp	w0, #0x5
  433f8c:	540001ec 	b.gt	433fc8 <printf_positional+0x298>
  433f90:	71000c1f 	cmp	w0, #0x3
  433f94:	5400140a 	b.ge	434214 <printf_positional+0x4e4>  // b.tcont
  433f98:	7100041f 	cmp	w0, #0x1
  433f9c:	5400126c 	b.gt	4341e8 <printf_positional+0x4b8>
  433fa0:	36f81240 	tb


/george6", "ジョージ6世", "George VI", "乔治六世"],
    ["女王", "Queen", "@"],
    [1952, 1975, "uk/elizabeth2-young", "エリザベス2世", "Elizabeth II", "伊丽莎白二世"],
    [1975, 9999, "uk/elizabeth2", "エリザベス2世", "Elizabeth II", "伊丽莎白二世"],
    ["首相", "Prime Minister", "@"],
    [1721, 1742, "uk/walpole", "ロバート・ウォ儿ポー儿", "Sir Robert Walpole", "罗伯特・沃波尔"],
    [1742, 1743, "uk/earl-of-wilmington", "ウィ儿ミントン伯爵スペンサー・コンプトン", "Spencer Compton, Earl of Wilmington", "威尔明顿伯爵斯潘塞・康普敦"],
    [1743, 1754, "uk/pelham", "ヘンリー・ペラム", "Henry Pelham", "亨利・佩尔汉姆"],
    [1754, 1756, "uk/pelham-holles", "ニューカッス儿公爵トーマス・ペラム・ホー儿ズ", "Thomas Pelham-Holles, Duke of Newcastle-upon-Tyne", "纽卡斯尔公爵托马斯・佩勒姆-霍利斯"],
    [1756, 1757, "uk/cavendish", "デヴォンシャー公爵ウィリアム・カベンディッシュ", "William Cavendish, Duke of Devonshire", "德文郡公爵威廉・卡文迪许"],
    [1757, 1762, "uk/pelham-holles", "ニューカッス儿公爵トーマス・ペラム・ホー儿ズ", "Thomas Pelham-Holles, Duke of Newcastle-upon-Tyne", "纽卡斯尔公爵托马斯・佩勒姆-霍利斯"],
    [1762, 1763, "uk/john-stuart", "ビュート伯爵ジョン・スチュアート", "John Stuart, Earl of Bute", "比特伯爵约翰・斯图尔特"],
    [1763, 1765, "uk/george-grenville", "ジョージ・グレンヴィ儿", "George Grenville", "乔治・格伦维尔"],
    [1765, 1766, "uk/charles-wentworth", "ロッキンガム侯爵チャー儿ズ・ワトソン＝ウェントワース", "Charles Watson-Wentworth, Marquess of Rockingham", "罗金汉侯爵査尔斯・沃森-文特沃斯"],
    [1766, 1768, "uk/elder-pitt", "チャタム伯爵ウィリアム・ピット（大ピット）", "William Pitt the Elder, Earl of Chatham", ".査塔姆伯爵威廉・皮特（老皮特）"],
    [1768, 1770, "uk/duke-of-grafton3", "グラフトン公爵オーガスタス・フィッツロイ", "Augustus FitzRoy, Duke of Grafton", "格拉夫顿公爵奥古斯都・菲茨罗伊"],
    [1770, 1782, "uk/north", "フレデリック・ノース", "Fred


Eq + PartialEq + Clone + PartialOrd + Send,
{
    fn from(e: TonEvent) -> Self {
        match e {
            TonEvent::Key(key) => Self::Keyboard(key.into()),
            _ => Self::None,
        }
    }
}

impl From<TonKey> for KeyEvent {
    fn from(e: TonKey) -> Self {
        // Get modifiers
        let modifiers = match e {
            TonKey::Alt(c) if c.is_uppercase() => KeyModifiers::ALT | KeyModifiers::SHIFT,
            TonKey::Ctrl(c) if c.is_uppercase() => KeyModifiers::CONTROL | KeyModifiers::SHIFT,
            TonKey::Char(c) if c.is_uppercase() => KeyModifiers::SHIFT,
            TonKey::Alt(_) => KeyModifiers::ALT,
            TonKey::Ctrl(_) => KeyModifiers::CONTROL,
            _ => KeyModifiers::NONE,
        };
        let code = match e {
            TonKey::Alt('\n') | TonKey::Char('\n') | TonKey::Ctrl('\n') => Key::Enter,
            TonKey::Alt('\t') | TonKey::Char('\t') | TonKey::Ctrl('\t') => Key::Tab,
            TonKey::Alt(c) | TonKey::Char(c) | TonKey::Ctrl(c) => Key::Char(c.to_ascii_lowercase()),
            TonKey::BackTab => Key::BackTab,
            TonKey::Backspace => Key::Backspace,
            TonKey::Delete => Key::Delete,
            TonKey::Down => Key::Down,
            TonKey::End => Key::End,
            TonKey::Left => Key::Left,
            TonKey::Right => Key::Right,
            TonKey::Up => Key::Up,
            TonKey::Home => Key::Home,
            TonKey::PageUp => Key::PageUp,
            TonKey::PageDown => Key::PageDown,
            TonKey::Insert => Key::Insert,
            TonKey::F(f) => Key::Function(f),
            TonKey::Null => Key::Null,
            TonKey::Esc => Key::Esc,
            TonKey::__IsNotComplete => Key::Null,
        };
        Self { code, modifiers }
    }
}

#[cfg(test)]
mod test {

    use super::*;
    use crate::mock::MockEvent;

    use pretty_assertions::assert_eq;

    use termion::event::MouseEvent;

    #[test]
    fn adapt_termion_key_event() {
        assert_eq!(
            KeyEvent::from(TonKey::BackTab),
            KeyEvent::from(Key::BackTab)
        );
        assert_eq!(
            KeyEvent::from(TonKey::Backspace),
            KeyEvent::from(Key::Backspace)
        );
        assert_eq!(
            KeyEvent::from(TonKey::Char('b')),
            KeyEvent::from(Key::Char('b'))
        );
        assert_eq!(
            KeyEvent::from(TonKey::Ctrl('b')),
            KeyEvent::from(KeyEvent {
                code: Key::Char('b'),
                modifiers: KeyModifiers::CONTROL,
            })
        );
        assert_eq!(
            KeyEvent::from(TonKey::Alt('b')),
            KeyEvent::from(KeyEvent {
                code: Key::Char('b'),
                modifiers: KeyModifiers::ALT
            })
        );
        assert_eq!(
            KeyEvent::from(TonKey::Char('B')),
            KeyEvent::from(KeyEvent {
                code: Key::Char('b'),
                modifiers: KeyModifiers::SHIFT,
            })
        );
        assert_eq!(KeyEvent::from(TonKey::Delete), KeyEvent::from(Key::Delete));
        assert_eq!(KeyEvent::from(TonKey::Down), KeyEvent::from(Key::Down));
        assert_eq!(KeyEvent::from(TonKey::End), KeyEvent::from(Key::End));
        assert_eq!(


g: $button-pip-lrg - rem-calc(6);
// $split-button-pip-top-lrg: $button-pip-lrg + rem-calc(5);
// $split-button-pip-default-float-lrg: rem-calc(-6);

// 28. Sub Nav
// - - - - - - - - - - - - - - - - - - - - - - - - -

// $include-html-nav-classes: $include-html-classes;

// We use these to control margin and padding
// $sub-nav-list-margin: rem-calc(-4 0 18);
// $sub-nav-list-padding-top: rem-calc(4);

// We use this to control the definition
// $sub-nav-font-family: $body-font-family;
// $sub-nav-font-size: rem-calc(14);
// $sub-nav-font-color: $aluminum;
// $sub-nav-font-weight: $font-weight-normal;
// $sub-nav-text-decoration: none;
// $sub-nav-padding: rem-calc(3 16);
// $sub-nav-border-radius: 3px;
// $sub-nav-font-color-hover: scale-color($sub-nav-font-color, $lightness: -25%);

// We use these to control the active item styles

// $sub-nav-active-font-weight: $font-weight-normal;
// $sub-nav-active-bg: $primary-color;
// $sub-nav-active-bg-hover: scale-color($sub-nav-active-bg, $lightness: -14%);
// $sub-nav-active-color: $white;
// $sub-nav-active-padding: $sub-nav-padding;
// $sub-nav-active-cursor: default;

// $sub-nav-item-divider: "";
// $sub-nav-item-divider-margin: rem-calc(12);

// 29. Switch
// - - - - - - - - - - - - - - - - - - - - - - - - -

// $include-html-form-classes: $include-html-classes;

// Controlling background color for the switch container
// $switch-bg: $gainsboro;

// We use these to control the switch heights for our default classes
// $switch-height-tny: 1.5rem;
// $switch-height-sml: 1.75rem;
// $switch-height-med: 2rem;
// $switch-height-lrg: 2.5rem;
// $switch-bottom-margin: 1.5rem;

// We use these to style the switch-paddle
// $switch-paddle-bg: $white;
// $switch-paddle-transition-speed: .15s;
// $switch-paddle-transition-ease: ease-out;
// $switch-active-color: $primary-color;

// 30. Tables
// - - - - - - - - - - - - - - - - - - - - - - - - -

// $include-html-table-classes: $include-html-classes;

// These control the background color for the table and even rows
// $table-bg: $white;
// $table-even-row-bg: $snow;

// These control the table cell border style
// $table-border-style: solid;
// $table-border-size: 1px;
// $table-border-color: $gainsboro;

// These control the table head styles
// $table-head-bg: $white-smoke;
// $table-head-font-size: rem-calc(14);
// $table-head-font-color: $jet;
// $table-head-font-weight: $font-weight-bold;
// $table-head-padding: rem-calc(8 10 10);

// These control the table foot styles
// $table-foot-bg: $table-head-bg;
// $table-foot-font-size: $table-head-font-size


0
	add     r0, sp, #0x10
	mov     r3, #0x1a
	mov     r2, #0x0
	add     r1, r0, r1
	b       branch_37f8294

branch_37f8288: @ 0x37f8288 :arm
	add     r0, r1, r3, lsl #1
	strh    r2, [r0, #-0xe6]
	sub     r3, r3, #0x1
branch_37f8294: @ 0x37f8294 :arm
	ldrb    r0, [r1, #-0xb0]
	cmp     r3, r0
	bgt     branch_37f8288
branch_37f82a0: @ 0x37f82a0 :arm
	ldr     r1, [pc, #0x1b4] @ [0x37f845c] (=0x27ffc80)
	add     r2, sp, #0x10
	sub     r0, r6, #0x1
	add     r0, r2, r0, lsl #8
	mov     r2, #0x74
	bl      Function_37fb090
	b       branch_37f82cc

branch_37f82bc: @ 0x37f82bc :arm
	ldr     r1, [pc, #0x198] @ [0x37f845c] (=0x27ffc80)
	mov     r0, #0x0
	mov     r2, #0x74
	bl      Function_37fb074
branch_37f82cc: @ 0x37f82cc :arm
	add     r2, sp, #0x8
	mov     r0, #0x36
	mov     r1, #0x6
	bl      Function_3803e14
	ldr     r4, [pc, #0x178] @ [0x37f845c] (=0x27ffc80)
	add     r0, sp, #0x8
	add     r1, r4, #0x74
	mov     r2, #0x6
	bl      Function_37fb228
	add     r2, sp, #0x2
	mov     r0, #0x3c
	mov     r1, #0x2
	bl      Function_3803e14
	ldrh    r0, [sp, #0x2]
	mov     r0, r0, lsl #15
	mov     r0, r0, lsr #16
	bl      Function_3806a60
	strh    r0, [r4, #0x7a]
	bl      Function_37fb3b0
	mov     r0, #0x8
	bl      Function_37f9b38
	mov     r4, r0
	mov     r0, #0x8
	bl      Function_37f9b4c
	mov     r1, r0
	mov     r2, r4
	mov     r0, #0x8
	mov     r3, #0x1
	bl      Function_37f9ec8
	mov     r4, r0
	mov     r0, #0x8
	bl      Function_37f9b38
	sub     r2, r0, r4
	mov     r0, r4
	mov     r1, #0x0
	bl      Function_37fb16c
	mov     r1, r4
	mov     r0, #0x8
	bl      Function_37f9c34
	mov     r0, #0x8
	bl      Function_37f9b38
	mov     r4, r0
	mov     r0, #0x8
	bl      Function_37f9b4c
	mov     r1, r0
	mov     r2, r4
	mov     r0, #0x8
	bl      Function_37f9f70
	movs    r4, r0
	bpl     branch_37f8398
	bl      Function_37faf14
branch_37f8398: @ 0x37f8398 :arm
	mov     r1, r4
	mo


base64Js = _interopRequireDefault(__webpack_require__(511));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

var categories = ["Cc", "Zs", "Po", "Sc", "Ps", "Pe", "Sm", "Pd", "Nd", "Lu", "Sk", "Pc", "Ll", "So", "Lo", "Pi", "Cf", "No", "Pf", "Lt", "Lm", "Mn", "Me", "Mc", "Nl", "Zl", "Zp", "Cs", "Co"];
var combiningClasses = ["Not_Reordered", "Above", "Above_Right", "Below", "Attached_Above_Right", "Attached_Below", "Overlay", "Iota_Subscript", "Double_Below", "Double_Above", "Below_Right", "Above_Left", "CCC10", "CCC11", "CCC12", "CCC13", "CCC14", "CCC15", "CCC16", "CCC17", "CCC18", "CCC19", "CCC20", "CCC21", "CCC22", "CCC23", "CCC24", "CCC25", "CCC30", "CCC31", "CCC32", "CCC27", "CCC28", "CCC29", "CCC33", "CCC34", "CCC35", "CCC36", "Nukta", "Virama", "CCC84", "CCC91", "CCC103", "CCC107", "CCC118", "CCC122", "CCC129", "CCC130", "CCC132", "Attached_Above", "Below_Left", "Left", "Kana_Voicing", "CCC26", "Right"];
var scripts = ["Common", "Latin", "Bopomofo", "Inherited", "Greek", "Coptic", "Cyrillic", "Armenian", "Hebrew", "Arabic", "Syriac", "Thaana", "Nko", "Samaritan", "Mandaic", "Devanagari", "Bengali", "Gurmukhi", "Gujarati", "Oriya", "Tamil", "Telugu", "Kannada", "Malayalam", "Sinhala", "Thai", "Lao", "Tibetan", "Myanmar", "Georgian", "Hangul", "Ethiopic", "Cherokee", "Canadian_Aboriginal", "Ogham", "Runic", "Tagalog", "Hanunoo", "Buhid", "Tagbanwa", "Khmer", "Mongolian", "Limbu", "Tai_Le", "New_Tai_Lue", "Buginese", "Tai_Tham", "Balinese", "Sundanese", "Batak", "Lepcha", "Ol_Chiki", "Braille", "Glagolitic", "Tifinagh", "Han", "Hiragana", "Katakana", "Yi", "Lisu", "Vai", "Bamum", "Syloti_Nagri", "Phags_Pa", "Saurashtra", "Kayah_Li", "Rejang", "Javanese", "Cham", "Tai_Viet", "Meetei_Mayek", "null", "Linear_B", "Lycian", "Carian", "Old_Italic", "Gothic", "Old_Permic", "Ugaritic", "Old_Persian", "Deseret", "Shavian", "Osmanya", "Osage", "Elbasan", "Caucasian_Albanian", "Linear_A", "Cypriot",


def test_softmax_is_float(self):
    m = nn.Softmax(dim=1)
    f = ft.partial(F.softmax, dim=1)
    run_layer_test(self, [m, f], ALWAYS_FLOAT, (self.b, self.h))


m6.356.607a1.138 1.138 0 11-2.277 0 1.138 1.138 0 012.277 0zM13.205 7.428a1.062 1.062 0 11-2.125 0 1.062 1.062 0 012.125 0zm-2.011 1.859h1.897v5.692h-1.897V9.287zM6.83 8.225H4.364v6.754H2.466V8.225H0V6.63h6.83v1.594zm3.035 1.033c.13 0 .255.012.38.03v1.74a1.55 1.55 0 00-.297-.031c-.88 0-1.594.612-1.594 1.593v2.389H6.451V9.287h1.707v.9c.363-.558.991-.93 1.707-.93z"/></svg>';
  static const String trove =
      '<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" preserveAspectRatio="xMidYMid meet" viewBox="0 0 24 24"><path fill="currentColor" d="M11.922 8.43c-1.393.035-2.506 1.213-2.486 2.606a2.534 2.534 0 001.763 2.392l.25-1.123a1.424 1.424 0 01-.875-1.307c0-.883.816-1.594 1.72-1.396.56.122.994.58 1.095 1.143a1.419 1.419 0 01-.854 1.558l.25 1.123a2.537 2.537 0 001.764-2.428 2.557 2.557 0 00-2.627-2.568zM.189 8.5a.138.138 0 00-.136.137v.776c0 .07.058.134.136.134h1.016v3.797a.14.14 0 00.135.135h.853a.141.141 0 00.137-.135V9.547h1.016a.136.136 0 00.136-.134v-.776a.138.138 0 00-.136-.137zm4.504 0a.136.136 0 00-.134.137v4.707c0 .071.056.137.134.137h.846a.143.143 0 00.137-.137v-1.812h.49l.945 1.884a.13.13 0 00.114.065h.947c.12 0 .17-.115.121-.207l-.975-1.807c.62-.249 1.053-.775 1.053-1.43 0-.846-.697-1.537-1.55-1.537zm10.356 0c-.107 0-.164.094-.121.186l2.218 4.787a.136.136 0 00.122.078h.072c.057 0 .1-.035.12-.078l2.233-4.787c.043-.092-.014-.186-.12-.186h-.946a.14.14 0 00-.121.079l-1.174 2.597h-.043L16.115 8.58a.14.14 0 00-.12-.079zm5.805 0a.138.138 0 00-.137.137v4.707c0 .071.058.137.137.137h2.943a.136.136 0 00.135-.137v-.775a.134.134 0 00-.135-.135h-1.97v-.96h1.622a.134.134 0 00.135-.136v-.775a.14.14 0 00-.135-.135h-1.623v-.88h1.97a.134.134 0 00.136-.135v-.776a.136.136 0 00-.135-.137zM5.676 9.518h1.053c.291 0 .539.242.539.541 0 .299-.248.568-.54.568H5.677zM.135 14.526A.134.134 0 000 14.66v.775c0 .071.056.135.135.135h


ol tool) {
		if (!(tool instanceof ChartTool))
			tool = null;
		if (chart.getCharter()!=null)
			chart.getCharter().mouseDragInField(modifiers,x,y, chart, (ChartTool)tool);
	}
	/*_________________________________________________*/
	public void mouseUp(int modifiers, int x, int y, MesquiteTool tool) {
		if (!(tool instanceof ChartTool))
			tool = null;
		if (chart.getCharter()!=null)
			chart.getCharter().mouseUpInField(modifiers,x,y, chart, (ChartTool)tool);
	}
}

/* Mesquite source code.  Copyright 1997 and onward, W. Maddison and D. Maddison.

Disclaimer:  The Mesquite source code is lengthy and we are few.  There are no doubt inefficiencies and goofs in this code.
The commenting leaves much to be desired. Please approach this source code with the spirit of helping out.
Perhaps with your help we can be more than a few, and make Mesquite better.

Mesquite is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY.
Mesquite's web site is http://mesquiteproject.org

This source code and its compiled class files are free and modifiable under the terms of
GNU Lesser General Public License.  (http://www.gnu.org/copyleft/lesser.html)
*/
package mesquite.lib.ui;

import java.awt.Color;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import mesquite.lib.Double2DArray;
import mesquite.lib.MesquiteDouble;

/*===============================================*/
/** a collection of fields for doubles */
public class DoubleSqMatrixFields  {
	ExtensibleDialog dialog;
	SingleLineTextField [][] textFields;
	double[][] matrix;
	String[] labels;
	boolean onlyUpperRight;
	boolean editDiagonal;
	boolean valid=false;
	boolean lastValueEditable = false;
	SingleLineTextField lastField = null;
	/*.................................................................................................................*/
	public DoubleSqMatrixFields (ExtensibleDialog dialog, double[][] matrix, String[] labels, boolean onlyUpperRight, boolean editDiagonal, int fieldLength) {
		super();
		this.dialog = dialog;
		this.labels =labels;
		this.matrix = matrix;
		initSqMatrixFields(matrix,onlyUpperRight,editDiagonal, fieldLength);
	}
	/*.................................................................................................................*/
	public DoubleSqMatrixFields (ExtensibleDialog dialog, int matrixSize, boolean onlyUpperRight, int fieldLength) {
		super();
		this.dialog = dialog;
		matrix = new double[matrixSize][matrixSize];
		for (int i = 0; i<matrixSize; i++)
			for (int j = 0; j<matrixSize; j++)
				matrix[i][j] = MesquiteDouble.unassigned;
		initSqMatrixFields(matrix,onlyUpperRight,editDiagonal, fieldLength);
	}
	/*.................................................................................................................*/
	public void initSqMatrixFields (double[][]  matrix, boolean onlyUpperRight, boolean editDiagonal, int fieldLength) {
		this.onlyUpperRight = onlyUpperRight;
		this.editDiagonal = editDiagonal;
		textFields = new SingleLineTextField [matrix.length][matrix.length]; //protect against non-square or null matrices!

		GridBagLayout gridBag = new GridBagLayout();
		GridBagConstraints constraints = new GridBagConstraints();
		constraints.gridwidth=1;
		constraints.gridheight=1;
		constraints.fill=GridBagConstraints.BOTH;
		int adj = 0;
		if (!onlyUpperRight)
			adj = 1


0, #26
// CHECK-ENCODING: [0x40,0xfb,0xb0,0x04]
// CHECK-ERROR: instruction requires: sve or sme
// CHECK-UNKNOWN: 04b0fb40 <unknown>

sqdecw  x0, #27
// CHECK-INST: sqdecw  x0, #27
// CHECK-ENCODING: [0x60,0xfb,0xb0,0x04]
// CHECK-ERROR: instruction requires: sve or sme
// CHECK-UNKNOWN: 04b0fb60 <unknown>

sqdecw  x0, #28
// CHECK-INST: sqdecw  x0, #28
// CHECK-ENCODING: [0x80,0xfb,0xb0,0x04]
// CHECK-ERROR: instruction requires: sve or sme
// CHECK-UNKNOWN: 04b0fb80 <unknown>

// --------------------------------------------------------------------------//
// Test compatibility with MOVPRFX instruction.

movprfx z0, z7
// CHECK-INST: movprfx	z0, z7
// CHECK-ENCODING: [0xe0,0xbc,0x20,0x04]
// CHECK-ERROR: instruction requires: sve or sme
// CHECK-UNKNOWN: 0420bce0 <unknown>

sqdecw  z0.s
// CHECK-INST: sqdecw	z0.s
// CHECK-EN


server)

    // Downloading & Networking
    implementation(libs.work.runtime)
    implementation(libs.work.runtime.ktx)
    implementation(libs.nicehttp) // HTTP Lib

    implementation(project(":library") {
        // There does not seem to be a good way of getting the android flavor.
        val isDebug = gradle.startParameter.taskRequests.any { task ->
            task.args.any { arg ->
                arg.contains("debug", true)
            }
        }

        this.extra.set("isDebug", isDebug)
    })
}

tasks.register<Jar>("androidSourcesJar") {
    archiveClassifier.set("sources")
    from(android.sourceSets.getByName("main").java.srcDirs) // Full Sources
}

tasks.register<Copy>("copyJar") {
    from(
        "build/intermediates/compile_app_classes_jar/prereleaseDebug/bundlePrereleaseDebugClassesToCompileJar",
        "../library/build/libs"
    )
    into("build/app-classes")
    include("classes.jar", "library-jvm*.jar")
    // Remove the version
    rename("library-jvm.*.jar", "library-jvm.jar")
}

// Merge the app classes and the library classes into classes.jar
tasks.register<Jar>("makeJar") {
    // Duplicates cause hard to catch errors, better to fail at compile time.
    duplicatesStrategy = DuplicatesStrategy.FAIL
    dependsOn(tasks.getByName("copyJar"))
    from(
        zipTree("build/app-classes/classes.jar"),
        zipTree("build/app-classes/library-jvm.jar")
    )
    destinationDirectory.set(layout.buildDirectory)
    archiveBaseName = "classes"
}

tasks.withType<KotlinJvmCompile> {
    compilerOptions {
        jvmTarget.set(javaTarget)
        freeCompilerArgs.addAll(
            "-Xjvm-default=all-compatibility",
            "-Xannotation-default-target=param-property",
            "-opt-in=com.lagradost.cloudstream3.Prerelease"
        )
    }
}

dokka {
    moduleName = "App"
    dokkaSourceSets {
        main {
            analysisPlatform = KotlinPlatform.JVM
            documentedVisibilities(
                VisibilityModifier.Public,
                VisibilityModifier.Protected
            )

            sourceLink {
                localDirectory = file("..")
                remoteUrl("https://github.com/recloudstream/cloudstream/tree/master")
                remoteLineSuffix = "#L"
            }
        }
    }
}
package com.lagradost.cloudstream3.widget

import android.annotation.SuppressLint
import android.content.Context
import android.util.AttributeSet
import android.view.ViewGroup
import androidx.core.view.isVisible
import androidx.core.view.marginEnd
import com.lagradost.cloudstream3.R
import kotlin.math.max

class FlowLayout : ViewGroup {
    var itemSpacing: Int = 0

    constructor(context: Context?) : super(context)

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

    @SuppressLint("CustomViewStyleable")
    internal constructor(c: Context, attrs: AttributeSet?) : super(c, attrs) {
        val t = c.obtainStyledAttributes(attrs, R.styleable.FlowLayout_Layout)
        itemSpacing = t.getDimensionPixelSize(R.styleable.FlowLayout_Layout_itemSpacing, 0)
        t.recycle()
    }

    override fun onMeasure(widthMeasureSpec: Int, heightMeasureSpec: Int) {
        val realWidth = MeasureSpec.getSize(widthMeasureSpec)
        var currentHeight = 0
        var currentWidth = 0
        var currentChildHookPointx = 0
        var currentChildHookPointy = 0
        val childCount = this.childCount
        for (i in 0 until childCount) {
            val child = getChildAt(i)
            if (!child.isVisible) {
                continue
            }


39cb88ec583aeb2621ef9f4c9f1f18111401e4c9d73f90194b6791ed06d254da971bc29954c83d0752b2af4777f0c960a06bbb8d68b1f7d0efde31e634b679be598fbbec9f605f7484f773350c3832675b61',
    '0fe986b1829134af1ac8568f71f23f82a77263aabdc274ef3e2aa10e217f935f5fb4b139bcb01b13f7f687d0b1d84d26dd5e0106dd47e071e0b820902ea89946323c96342443054c5a5abccd2ad02cccf4740bf970e144598c57f9575394eb24fbbf985eecfb357053cd53534cd4f183675e55f891de2b531881aba5c814914874bb9cacdfccff650d0b57ca7c7ce6ff9b88d7848eff97da013c100bd926803e86d4cacf19065a2415edd0bcba629a8edc99f4944ba244cfe491349eb43f23ae4363417aa73a7525f90dd80b787fe63d9b92c057ce5addd2a63635acb3ea6099afc0668a16682f31c997029b3e9aa2ef453b3f614dfb3c0e9e78ab45362499eb',
    'En un lugar de La Mancha, de cuyo nombre no quiero acordarme...',
    '6cf9c2b31c3a26dd7a3af82f49583f071f3a3693266dcf19128af9e14d875bc5fb0d224d953e6a1d9c9e38cd1782a147be51496d7476e31ec679290b4e37bc99508029d65ffcbe0d034febbf4b3e31895a054f99728c9c83de1fbdbc06f141077721dff132fda3eb36086301931665b503fd2a41294160815f9aa7af5da451f6f98572c69cc3fd29e66bee29cdbc05f562295a53c6a4fc439c18106cbb2ceef95d868e2da16de9f843c65df26aff4c9bc6b7d59ed1a8d18a16d6c0abce4a5cfe792c921a99725bd5723fc4cfb37e732ed4f00525b79d192370e0584b2a8c5073a088dfde91c9e115f995611eeac6e7dfa63b38a8f964c96f0b57231b98ead441',
    '7d7a3f179d37875f0f14b97cd9c0f266cc0087dbb674488981c1669ec57da4b4025967c6f8557789bf79009ce5f7c15483a887964fc19fd444657538d477368b3681b40de94cc70d3f2dd3d075c7b37b29afb8300b7ce1219c8a9acede902b70f23697d047b13cb37ba95b909a3e30c162591afd5857543555bb73164d5711ad135f997bb0df8c21cb8bf2cfff3f67b145483d3c3e2fee78e600e5c14cdf73cd2ecb63afaee65006644f7b6dab026624c11f142a8ec393c9e409a56da9ddfcbe6d35f8f01533d5a30db3a55c8510bb457c8e3a85e17133c2231be209eb8fa0c93fb87ba7ca2edd30bb4485bf1cb923522414d3d6b0e6d25c251e45e08505a966',
  ]);
}
// See file LICENSE for more information.

import 'package:pointycastle/export.dart';
import 'package:pointycastle/src/utils.dart';
import 'package:test/test.dart';

import '../test/src/fixed_secure_random.dart';
import '../test/src/helpers.dart';
import 'ecdsa_vec.dart';

void main() {
  sigVer();
  sigGen();
}

void sigVer() {
  var vectors = sigVerVec;

  vectors[1]['testGroups'].forEach((grp) {
    String hashAlg = grp['hashAlg


/chat.dart';
import 'package:uuid/uuid.dart';

final Uuid _uuid = Uuid();

final textMessagesRef = StateRef(const <TextMessage>[]);

final chatViewLogicRef = LogicRef((scope) => ChatViewLogic(scope));

class ChatViewLogic with Logic {
  const ChatViewLogic(this.scope);

  @override
  final Scope scope;

  ChatRepository get _chatRepository => use(chatRepositoryRef);

  Future<void> send(String message) async {
    final textMessage = TextMessage(
      id: _uuid.v4(),
      userId: 'me',
      contents: message,
      timeStamp: DateTime.now().millisecondsSinceEpoch,
      status: Status.sent,
    );
    _add(textMessage);

    final success = await _chatRepository.send(textMessage);
    final status = success ? Status.delivered : Status.undelivered;
    _update(textMessage.copyWithNewStatus(status));
  }

  Future<void> retry(TextMessage textMessage) async {
    _update(textMessage.copyWithNewStatus(Status.sent));
    final success = await _chatRepository.send(textMessage);
    final status = success ? Status.delivered : Status.undelivered;
    _update(textMessage.copyWithNewStatus(status));
  }

  void _add(TextMessage textMessage) {
    write(textMessagesRef, [textMessage, ...read(textMessagesRef)]);
  }

  void _update(TextMessage textMessage) {
    final id = textMessage.id;
    write(
      textMessagesRef,
      read(textMessagesRef).map((m) => m.id == id ? textMessage : m).toList(),
    );
  }
}
import 'package:binder/binder.dart';
import 'package:meta/meta.dart';

import 'entities/todo.dart';

final todoListRef = StateRef(const <Todo>[]);
final todoListFilterRef = StateRef(TodoListFilter.all);
final homeLogicRef = LogicRef((scope) => HomeLogic(scope));

class HomeLogic with Logic {
  const HomeLogic(this.scope);

  @override
  final Scope scope;

  TodoListFilter get filter => read(todoListFilterRef);
  set filter(TodoListFilter value) => write(todoListFilterRef, value);

  void init() {
    write(todoListRef, [
      Todo(id: 'todo-0', description: 'hello'),
      Todo(id: 'todo-1', description: 'hola'),
      Todo(id: 'todo-2', description: 'bonjour'),
    ]);
  }

  void add(String description) {
    _updateTodos(
      (list) => [
        ...list,
        Todo(description: description),
      ],
    );
  }

  void toggle(String id) {
    _updateTodo(
      id,
      (todo) => Todo(
        id: todo.id,
        description: todo.description,
        completed: !todo.completed,
      ),
    );
  }

  void edit({@required String id, @required String description}) {
    _updateTodo(
      id,
      (todo) => Todo(
        id: todo.id,
        description: description,
        completed: todo.completed,
      ),
    );
  }

  void remove(String id) {
    _updateTodos(
      (list) => [
        for (final Todo todo in list)
          if (todo.id != id) todo,
      ],
    );
  }

  void _updateTodos(List<Todo> Function(List<Todo>) updater) {
    update(todoListRef, updater);
  }

  void _updateTodo(String id, Todo Function(Todo) updater) {
    _updateTodos(
      (List<Todo> list) => [
        for (final Todo todo in list)
          if (todo.id == id) updater(todo) else todo,
      ],
    );
  }
}
import 'package:binder/binder.dart';
import 'package:flutter/material.dart';
import 'package:shopper/models/cart.dart';
imp


2403">4.2.1ֲʽ洢ʵʵMooseFS. 1

4.2.2Moosefsװ... 1

1.

ĵҪһЩĿԴĿδһ׸߿üȺ㲥ֱϵͳؾ⻺弯ȺϻDNSȫָؾ(GLBS)洢ֲʽ洢ʵһ׾cdnܵĵ㲥ֱϵͳ

ĵʵֶĴֻʵ黷ҪѧϰоʹãʵʵЩͬҪҵϵͳЩطҪ޸ģҪʵӦ޸ġԭǲ䣬ͨõġ

弼Ҫûʵݻ浽Եʵûͽ񣬸Ʒһ̨豸޷ӦҪʱҪͨһγɻ弯ȺΪûṩ񡣱ĸؾ⻺弯ȺÿԴlvs+keepalivedʵָ߿øؾ, squidʵֵ㲥,SRSʵֱ塣ڼȺ븺ؾ⼰ʵ½ڻϸЩԴ

Ⱥ뱾ظؾʵ˷Ⱥĸ߿ԣȺڵĶϵ磬IPײϣֻȻֺȵȶʹ̱һ۲ļϸ߿ԣһЩɿصȺ޷ͨѷɢ𣬷ڶ⣬</span


−1
            1.8835 × 10-28

              alpha

            \( \small{}^4_2 \normalsize \alpha\)

            +2
            6.6447 × 10-27

        solution
        $$\lambda = \frac{h}{mv}$$
        $$\lambda = \frac{6.626 \times 10^{-34}}{(1.67 \times 10^{-27})(30)}$$
        $$\lambda = 1.32 \times 10^{-8} \, \mathrm{m}$$

Quantum Mechanics

      Quantum mechanics seems strange.
      It feels like our everyday experiences are normal, and quantum mechanics is a set of special rules for small things.
      It's actually the other way around.
      Quantum mechanics models the fundamental rules of reality, and our everyday experience emerges from those rules.

      Learning quantum mechanics is typically done by studying the underlying math.
      Building an intuition without the math can be confusing.
      The sections below have a simplified nonmathematical description of quantum mechanics.

      how quantum mechanics makes predictions

        The state of a quantum mechanical system is described mathematically by it's wave function.
        The wave function contains all the measurable information about the system.
        For simple situations the evolution of the wave function over time can be calculated
        with the Schrödinger equation.
        The Schrödinger equation can be applied to one particle, atom, molecule, or possibly the entire universe.

      $$\Psi(x,t) = \text{wave function} $$

        As a wave function
        evolves with time it often looks like a field of positive and negative amplitudes oscillating back and forth like a sine wave.
        It kinda looks like waves and ripples on surface of a pool of water.

        These waves are modeled as complex numbers. This means they have a part made of real numbers and a part made of imaginary numbers.
        This means the waves wiggle back and forth in the 3 spacial dimensions, but also in some other direction perpendicular to all the spacial dimensions.

      measurement


_base_ = [
    "../../_base_/datasets/epic_sounds/features_slowfast_train_trunc_test_sw_s6_pad6144.py",  # dataset config
    "../../_base_/models/causaltad.py",  # model config
]

model = dict(
    projection=dict(
        in_channels=2304,
        arch=(2, 2, 6),
        use_abs_pe=True,
        max_seq_len=6144,
        input_pdrop=0.2,
        channel_expand=1,
    ),
    neck=dict(num_levels=7),
    rpn_head=dict(
        num_classes=44,
        prior_generator=dict(
            strides=[1, 2, 4, 8, 16, 32, 64],
            regression_range=[(0, 4), (2, 8), (4, 16), (8, 32), (16, 64), (32, 128), (64, 10000)],
        ),
        label_smoothing=0.1,
        loss_normalizer=250,
        loss_weight=0.5,
    ),
)

solver = dict(
    train=dict(batch_size=2, num_workers=2),
    val=dict(batch_size=2, num_workers=2),
    test=dict(batch_size=2, num_workers=2),
    clip_grad_norm=1,
    ema=True,
    amp=True,
)

optimizer = dict(type="AdamW", lr=1e-4, weight_decay=0.05, paramwise=True)
scheduler = dict(type="LinearWarmupCosineAnnealingLR", warmup_epoch=5, max_epoch=30)

inference = dict(load_from_raw_predictions=False, save_raw_prediction=False)
post_processing = dict(
    pre_nms_topk=5000,
    nms=dict(
        use_soft_nms=True,
        sigma=0.4,
        max_seg_num=2000,
        min_score=0.001,
        multiclass=True,
        voting_thresh=0.75,  #  set 0 to disable
    ),
    save_dict=False,
)

workflow = dict(
    logging_interval=200,
    checkpoint_interval=1,
    val_loss_interval=-1,
    val_eval_interval=1,
    val_start_epoch=15,
    end_epoch=25,
)

work_dir = "exps/epic_sounds/causal_audioslowfast"


r4, #0xe]
	strb r0, [r4, #3]
_080929FC:
	add sp, #8
	pop {r3, r4, r5}
	mov r8, r3
	mov sb, r4
	mov sl, r5
	pop {r4, r5, r6, r7}
	pop {r0}
	bx r0

	thumb_func_start sub_8092A0C
sub_8092A0C: @ 0x08092A0C
	push {r4, r5, r6, r7, lr}
	ldr r0, _08092AB4 @ =gCurTask
	ldr r0, [r0]
	ldrh r1, [r0, #6]
	movs r0, #0xc0
	lsls r0, r0, #0x12
	adds r4, r1, r0
	adds r0, r4, #0
	bl sub_80933B0
	adds r0, r4, #0
	bl sub_80934B0
	adds r0, r4, #0
	bl sub_809380C
	adds r0, r4, #0
	bl sub_809382C
	adds r0, r4, #0
	bl sub_809384C
	adds r0, r4, #0
	bl sub_80938B4
	adds r0, r4, #0
	bl sub_8093904
	movs r3, #0
	ldrb r0, [r4, #5]
	cmp r3, r0
	bhs _08092A86
	ldr r7, _08092AB8 @ =gSaveGame + 0x4
	mov ip, r7
	ldr r0, _08092ABC @ =gUnknown_080D7458
	ldrh r5, [r0]
	movs r6, #0xee
	lsls r6, r6, #1
_08092A58:
	lsls r0, r3, #2
	adds r0, r0, r3
	lsls r0, r0, #3
	adds r0, r0, r6
	adds r0, r4, r0
	lsls r1, r3, #1
	add r1, ip
	ldrb r2, [r0, #0x1a]
	strh r2, [r1]
	ldrh r0, [r0, #0xc]
	cmp r0, r5
	beq _08092A7A
	movs r7, #0x80
	lsls r7, r7, #1
	adds r0, r7, #0
	adds r0, r2, r0
	strh r0, [r1]
_08092A7A:
	adds r0, r3, #1
	lsls r0, r0, #0x18
	lsrs r3, r0, #0x18
	ldrb r0, [r4, #5]
	cmp r3, r0
	blo _08092A58
_08092A86:
	ldrb r3, [r4, #5]
	ldr r5, _08092AB4 @ =gCurTask
	ldr r6, _08092AC0 @ =sub_8093710
	cmp r3, #5
	bhi _08092AAA
	ldr r4, _08092AB8 @ =gSaveGame + 0x4
	ldr r7, _08092AC4 @ =0x0000FFFF
	adds r2, r7, #0
_08092A96:
	lsls r0, r3, #1
	adds r0, r0, r4
	ldrh r1, [r0]
	orrs r1, r2
	strh r1, [r0]
	adds r0, r3, #1
	lsls r0,


 ImplicitDualQuaternion,
    pub has_origin_offset: bool,
    pub dof_rotation_axes: Vec<Vector3<f64>>,
    pub dof_translation_axes: Vec<Vector3<f64>>,
    pub dof_rotation_axes_as_units: Vec<Unit<Vector3<f64>>>,
    pub num_dofs: usize,
    pub active: bool
}

impl Joint {
    pub fn new(urdf_joint: URDFJoint, joint_idx: usize, preceding_link_idx: usize, child_link_idx: usize) -> Self {
        let name = urdf_joint.name.clone();

        let origin_offset = ImplicitDualQuaternion::new_from_euler_angles( urdf_joint.origin_rpy[0], urdf_joint.origin_rpy[1], urdf_joint.origin_rpy[2],
                                                                           Vector3::new(urdf_joint.origin_xyz[0], urdf_joint.origin_xyz[1], urdf_joint.origin_xyz[2]));
        let mut dof_rotation_axes = Vec::new();
        let mut dof_translation_axes = Vec::new();
        let mut dof_rotation_axes_as_units = Vec::new();

        let mut has_origin_offset = true;
        if urdf_joint.origin_rpy[0] == 0.0 && urdf_joint.origin_rpy[1] == 0.0 && urdf_joint.origin_rpy[2] == 0.0 &&
            urdf_joint.origin_xyz[0] == 0.0 && urdf_joint.origin_xyz[1] == 0.0 && urdf_joint.origin_xyz[2] == 0.0 {
            has_origin_offset = false;
        }

        let mut out_joint = Self { name, urdf_joint, joint_idx, preceding_link_idx, child_link_idx, origin_offset, has_origin_offset, dof_rotation_axes, dof_translation_axes, dof_rotation_axes_as_units, num_dofs: 0, active: true };

        out_joint._set_dof_axes();
        out_joint.set_dof_rotation_axes_as_units();

        return out_joint
    }

    pub fn new_without_urdf_joint(joint_idx: usize, preceding_link_idx: usize, child_link_idx: usize) -> Self {
        let urdf_joint = URDFJoint::new_empty();
        return Self::new(urdf_joint, joint_idx, preceding_link_idx, child_link_idx);
    }

    fn _set_dof_axes(&mut self) -> Result<(), String> {
        let joint_type = self.urdf_joint.joint_type.clone();
        let axis = self.urdf_joint.axis.clone();

        if joint_type == "Revolute".to_string() {
            self.dof_rotation_axes.push(axis);
        } else if joint_type == "Continuous".to_string() {
            self.dof_rotation_axes.push(axis);
        } else if joint_type == "Prismatic".to_string() {
            self.dof_translation_axes.push(axis);
        } else if joint_type == "Floating".to_string() {
            self.dof_translation_axes.push( Vector3::new(1., 0., 0.) );
            self.dof_translation_axes.push( Vector3::new(0., 1., 0.) );
            self.dof_translation_axes.push( Vector3::new(0., 0., 1.) );

            self.dof_rotation_axes.push( Vector3::new(1., 0., 0.) );
            self.dof_rotation_axes.push( Vector3::new(0., 1., 0.) );
            self.dof_rotation_axes.push(


r6, #0
	mov r1, #1
	bl ov49_0225EF8C
	bl _022644DA
_02263CB4:
	add r0, r6, #0
	mov r1, #0x1a
	bl ov49_0225EF8C
	bl _022644DA
_02263CC0:
	add r0, r7, #0
	bl ov45_0222B0B0
	cmp r0, #0
	bne _02263CCE
_02263CCA:
	bl _022644DA
_02263CCE:
	ldr r0, [sp, #8]
	add r1, r7, #0
	str r0, [sp]
	ldr r0, [sp, #0xc]
	add r2, r5, #0
	str r0, [sp, #4]
	ldrb r3, [r4, #5]
	add r0, r4, #0
	bl ov49_02264D4C
	mov r0, #0x1e
	str r0, [sp]
	add r0, r4, #0
	mov r1, #0x80
	mov r2, #2
	add r3, r6, #0
	bl ov49_02264CFC
	b _022644DA
_02263CF4:
	add r0, r7, #0
	bl ov45_0222B0F8
	add r0, r7, #0
	mov r1, #7
	bl ov45_0222B118
	ldr r0, [sp, #0xc]
	add r1, r7, #0
	str r0, [sp]
	ldr r0, [sp, #8]
	add r2, r5, #0
	str r0, [sp, #4]
	ldrb r3, [r4, #4]
	add r0, r4, #0
	bl ov49_02264D4C
	mov r0, #0x1e
	str r0, [sp]
	add r0, r4, #0
	mov r1, #0x80
	mov r2, #3
	add r3, r6, #0
	bl ov49_02264CFC
	b _022644DA
_02263D28:
	ldr r0, [sp, #0x14]
	cmp r0, #4
	bhi _02263D8A
	add r0, r0, r0
	add r0, pc
	ldrh r0, [r0, #6]
	lsl r0, r0, #0x10
	asr r0, r0, #0x10
	add pc, r0
_02263D3A: ; jump table
	.short _02263D8A - _02263D3A - 2 ; case 0
	.short _02263D8A - _02263D3A - 2 ; case 1
	.short _02263D70 - _02263D3A - 2 ; case 2
	.short _02263D44 - _02263D3A - 2 ; case 3
	.short _02263D8A - _02263D3A - 2 ; case 4
_02263D44:
	add r0, r5, #0
	bl ov49_0225A0CC
	add r0, r7, #0
	mov r1, #0
	bl ov45_0222AED8
	add r0, r7, #0
	bl ov45_0222B028
	cmp r0, #0
	beq _02263D66
	add r0, r6, #0
	mov r1, #4
	bl ov49_0225EF8C
	b _022644DA
_02263D66:
	add r0, r6, #0
	mov r1, #6
	bl ov49_0225EF8C
	b _022644DA
_02263D70


9.4-233.9 17.2-233.9z"],
  "openid": [448, 512, [], "f19b", "M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"],
  "opera": [496, 512, [], "f26a", "M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1.3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z"],
  "optin-monster": [576, 512, [], "f23c", "M550.671 450.303c0 11.62-15.673 19.457-32.158 14.863-12.16-3.243-31.346-17.565-36.211-27.294-5.674-11.62 4.054-32.698 18.916-30.806 15.674 1.621 49.453 25.401 49.453 43.237zM372.86 75.223c-3.783-72.151-100.796-79.718-125.928-23.51 44.588-24.321 90.257-15.673 125.928 23.51zM74.795 407.066c-15.673 1.621-49.452 25.401-49.452 43.237 0 11.62 15.673 19.457 32.157 14.863 12.16-3.243 31.076-17.565 35.94-27.294 5.946-11.62-3.782-32.698-18.645-30.806zm497.765 14.322c1.081 3.513 1.892 7.026 1.892 10.809.81 31.616-44.317 64.045-73.503 65.125-17.295.81-34.59-8.377-42.696-23.51-113.497 4.053-226.994 4.864-340.22 0-8.377 15.133-25.672 24.05-42.967 23.51-28.915-1.081-74.043-33.509-73.503-65.125.27-3.783.811-7.296 1.892-10.809-5.566-9.463-4.845-15.282 5.405-11.62 3.243-5.134 7.026-9.458 11.08


container:last-child {
  flex-grow: 1;
}
.theme-light .mobile-view .rename-tag-dialog,
.theme-light .mobile-view .rename-tag-dialog-mobile-emulate {
  padding-top: 64px;
}
.theme-dark div[data-type='memos_view'] .tags-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
  padding: 0 8px;
  height: auto;
  flex-wrap: nowrap;
  padding-bottom: 16px;
  flex-grow: 1;
  scrollbar-width: none;
}
.theme-dark div[data-type='memos_view'] .tags-wrapper::-webkit-scrollbar {
  width: 0;
  height: 0;
  cursor: pointer;
}
.theme-dark div[data-type='memos_view'] .tags-wrapper::-webkit-scrollbar-thumb {
  width: 0;
  height: 0;
  border-radius: 8px;
  background-color: #d5d5d5;
}
.theme-dark div[data-type='memos_view'] .tags-wrapper::-webkit-scrollbar-thumb:hover {
  background-color: #ccc;
}
.theme-dark div[data-type='memos_view'] .tags-wrapper::-webkit-scrollbar {
  display: none;
}
.theme-dark div[data-type='memos_view'] .tags-wrapper > .title-text {
  width: 100%;
  padding: 4px 16px;
  font-size: 12px;
  line-height: 24px;
  color: #d2d1cd;
  opacity: 0.5;
  margin-bottom: 4px;
}
.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  position: relative;
  width: 100%;
  height: auto;
  flex-wrap: nowrap;
  margin-bottom: 8px;
}
.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .subtags-container {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  width: calc(100% - 18px);
  min-width: 80px;
  height: auto;
  margin-top: 4px;
  margin-left: 18px;
  border-left: 2px solid #353535;
  padding-left: 6px;
}
.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .subtags-container > .tag-item-container:first-child {
  margin-top: 0;
}
.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  height: 40px;
  padding: 0 16px;
  margin-top: 4px;
  border-radius: 8px;
  font-size: 14px;
  cursor: pointer;
  flex-shrink: 0;
  user-select: none;
}
.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container:hover {
  background-color: #353535;
}
.theme-dark div[data-type='memos_view'] .tags-wrapper > .tags-container .tag-item-container.active > .tag-text-container > * {
  color: #457560;
  font-weight: bold;
}
.theme-dark div[data-type='memos_view']


 0x5, 0x7, 0xA, 0x4, 0x9, 0x2, 0x3, 0xE, 0x6, 0xB, 0x8, 0xC
    )

    companion object {
        const val blockSize = 8
    }

    /**
     * initialise an GOST28147 cipher.
     *
     * @param forEncryption whether or not we are for encryption.
     * @param params the parameters required to set up the cipher.
     * @exception IllegalArgumentException if the params argument is
     * inappropriate.
     */
    fun initWithSbox(
        sBox: ByteArray
    ) {
        //
        // Set the S-Box
        //
        s = sBox.copyOf()
    }

    /**
     * initialise an GOST28147 cipher.
     *
     * @param forEncryption whether or not we are for encryption.
     * @param params the parameters required to set up the cipher.
     * @exception IllegalArgumentException if the params argument is
     * inappropriate.
     */
    fun initWithKey(
        forEncryption: Boolean,
        key: ByteArray
    ) {
        workingKey = generateWorkingKey(
            forEncryption,
            key
        )
    }

    val algorithmName: String
        get() = "GOST28147"

    @Suppress("ThrowsCount")
    fun processBlock(
        input: ByteArray,
        inOff: Int,
        out: ByteArray,
        outOff: Int
    ): Int {
        if (workingKey == null) {
            error("GOST28147 engine not initialised")
        }
        if (inOff + blockSize > input.size) {
            error("input buffer too short")
        }
        if (outOff + blockSize > out.size) {
            error("output buffer too short")
        }
        gost28147(workingKey!!, input, inOff, out, outOff)
        return blockSize
    }

    private fun generateWorkingKey(
        forEncryption: Boolean,
        userKey: ByteArray
    ): IntArray {
        this.forEncryption = forEncryption
        require(userKey.size == 32) { "Key length invalid. Key needs to be 32 byte - 256 bit!!!" }
        return IntArray(8) { decodeLEInt(userKey, it * 4) }
    }

    private fun mainStep(n1: Int, key: Int): Int {
        val cm = key + n1 // CM1

        // S-box replacing
        var om: Int = s[0 + (cm shr 0 * 4 and 0xF)].toInt() shl 0 * 4
        om += s[16 + (cm shr 1 * 4 and 0xF)].toInt() shl 1 * 4
        om += s[32 + (cm shr 2 * 4 and 0xF)].toInt() shl 2 * 4
        om += s[48 + (cm shr 3 * 4 and 0xF)].toInt() shl 3 * 4
        om += s[64 + (cm shr 4 * 4 and 0xF)].toInt() shl 4 * 4
        om += s[80 + (cm shr 5 * 4 and 0xF)].toInt() shl 5 * 4
        om += s[96 + (cm shr 6 * 4 and 0xF)].toInt() shl 6 * 4
        om += s[112 + (cm shr 7 * 4 and 0xF)].toInt() shl 7 * 4

        return om.rotateLeft(11)
    }

    @Suppress("NestedBlockDepth")
    private fun gost28147(
        workingKey: IntArray,
        input: ByteArray,
        inOff: Int,
        out: ByteArray,
        outOff: Int
    ) {
        var n1: Int
        var n2: Int
        var tmp: Int // tmp -> for saving N1
        n1 = decodeLEInt(input, inOff)
        n2 = decodeLEInt(input, inOff + 4)


:.8}to{opacity:0;-webkit-transform:scale(1);transform:scale(1)}}@keyframes pulsate{0%{opacity:0;-webkit-transform:scale(.1);transform:scale(.1)}50%{opacity:.5}80%{opacity:.8}to{opacity:0;-webkit-transform:scale(1);transform:scale(1)}}@media only screen and (min-width:676px){.teaser__small .teaser__headline,.teaser__small .teaser__subdeck{font-size:1.4rem;font-weight:700;line-height:1.8rem}}.teaser__small .teaser-slug__copy.liveblog-teaser-slug-enable{padding-left:2.4rem}.teaser__small .teaser-slug__copy.liveblog-teaser-slug-enable:before{-webkit-animation:pulsate 1.5s ease-out infinite;animation:pulsate 1.5s ease-out infinite;background-color:#fff;border-radius:50%;content:"";height:1rem;left:.8rem;margin-top:-.5rem;position:absolute;top:50%;width:1rem}.teaser__small span.teaser__item-play{padding-right:.5rem}.sidebar.widget .teaser__small{margin-bottom:16px;padding-bottom:0}.teaser__medium .teaser__headline,.teaser__medium .teaser__subdeck{font-size:20px;font-stretch:condensed;font-weight:700;line-height:2.4rem}.sidebar.widget .teaser__medium{margin-bottom:16px}.sidebar.widget .teaser__medium .teaser__copy-container{border-left:1px solid #d2d6d7;border-right:1px solid #d2d6d7}</style><style>.share__comments{margin-left:8px}@media only screen and (min-width:676px){.share__comments{margin-left:12px}}.share__comments-link{-webkit-align-items:center;align-items:center;background-color:#007aff;border-radius:4px;display:-webkit-flex;display:flex;height:36px;padding:4px 8px 4px 4px;transition:background-color .3s}.share__comments-link:hover{background-color:#0061cb}@media only screen and (min-width:676px){.share__comments-link{padding:2px 12px 2px 6px}}.share__comments-icon:before{background-image:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCI+PGcgZmlsbD0ibm9uZSIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBmaWxsPSIjRkZGIiBzdHJva2U9IiNGRkYiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTYgMTkuOTU1IDExLjA4NSAxNkgxOWEyIDIgMCAwIDAgMi0yVjVhMiAyIDAgMCAwLTItMkg1YTIgMiAwIDAgMC0yIDJ2OWEyIDIgMCAwIDAgMiAyaDF2My45NTV6Ii8+PGcgZmlsbD0iIzAwN0FGRiIgZmlsbC1ydWxlPSJub256ZXJvIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg2IDgpIj48Y2lyY2xlIGN4PSI2LjUiIGN5PSIxLjUiIHI9IjEuNSIgb3BhY2l0eT0iLjY2MyIvPjxjaXJjbGUgY3g9IjEuNSIgY3k9IjEuNSIgcj0iMS41IiBvcGF


A3: color(display-p3 0.573 0.314 0.012 / 0.091);
      --brownA4: color(display-p3 0.545 0.302 0.008 / 0.146);
      --brownA5: color(display-p3 0.561 0.29 0.004 / 0.204);
      --brownA6: color(display-p3 0.553 0.294 0.004 / 0.271);
      --brownA7: color(display-p3 0.557 0.286 0.004 / 0.361);
      --brownA8: color(display-p3 0.549 0.275 0.004 / 0.487);
      --brownA9: color(display-p3 0.447 0.22 0 / 0.632);
      --brownA10: color(display-p3 0.388 0.188 0 / 0.655);
      --brownA11: color(display-p3 0.485 0.374 0.288);
      --brownA12: color(display-p3 0.236 0.202 0.183);
    }
  }
}

.dark,
.dark-theme {
  --brownA1: #91110002;
  --brownA2: #fba67c0c;
  --brownA3: #fcb58c19;
  --brownA4: #fbbb8a24;
  --brownA5: #fcb88931;
  --brownA6: #fdba8741;
  --brownA7: #ffbb8856;
  --brownA8: #ffbe8773;
  --brownA9: #feb87da8;
  --brownA10: #ffc18cb3;
  --brownA11: #fed1aad9;
  --brownA12: #feecd4f2;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark,
    .dark-theme {
      --brownA1: color(display-p3 0.855 0.071 0 / 0.005);
      --brownA2: color(display-p3 0.98 0.706 0.525 / 0.043);
      --brownA3: color(display-p3 0.996 0.745 0.576 / 0.093);
      --brownA4: color(display-p3 1 0.765 0.592 / 0.135);
      --brownA5: color(display-p3 1 0.761 0.588 / 0.181);
      --brownA6: color(display-p3 1 0.773 0.592 / 0.24);
      --brownA7: color(display-p3 0.996 0.776 0.58 / 0.32);
      --brownA8: color(display-p3 1 0.78 0.573 / 0.433);
      --brownA9: color(display-p3 1 0.769 0.549 / 0.627);
      --brownA10: color(display-p3 1 0.792 0.596 / 0.677);
      --brownA11: color(display-p3 0.835 0.715 0.597);
      --brownA12: color(display-p3 0.938 0.885 0.802);
    }
  }
}

.dark,
.dark-theme {
  --brown1: #12110f;
  --brown2: #1c1816;
  --brown3: #28211d;
  --brown4: #322922;
  --brown5: #3e3128;
  --brown6: #4d3c2f;
  --brown7: #614a39;
  --brown8: #7c5f46;
  --brown9: #ad7f58;
  --brown10: #b88c67;
  --brown11: #dbb594;
  --brown12: #f2e1ca;
}

@supports (color: color(display-p3 1 1 1)) {
  @media (color-gamut: p3) {
    .dark,
    .dark-theme {
      --


Spider:CreateSlider({
		Name = 'Speed',
		Min = 0,
		Max = 100,
		Default = 30,
		Darker = true,
		Suffix = function(val)
			return val == 1 and 'stud' or 'studs'
		end
	})
	State = Spider:CreateToggle({
		Name = 'Climb State',
		Darker = true
	})
end)

run(function()
	local SpinBot
	local Mode
	local XToggle
	local YToggle
	local ZToggle
	local Value
	local AngularVelocity

	SpinBot = vape.Categories.Blatant:CreateModule({
		Name = 'SpinBot',
		Function = function(callback)
			if callback then
				SpinBot:Clean(runService.PreSimulation:Connect(function()
					if entitylib.isAlive then
						if Mode.Value == 'RotVelocity' then
							local originalRotVelocity = entitylib.character.RootPart.RotVelocity
							entitylib.character.Humanoid.AutoRotate = false
							entitylib.character.RootPart.RotVelocity = Vector3.new(XToggle.Enabled and Value.Value or originalRotVelocity.X, YToggle.Enabled and Value.Value or originalRotVelocity.Y, ZToggle.Enabled and Value.Value or originalRotVelocity.Z)
						elseif Mode.Value == 'CFrame' then
							local val = math.rad((tick() * (20 * Value.Value)) % 360)
							local x, y, z = entitylib.character.RootPart.CFrame:ToOrientation()
							entitylib.character.RootPart.CFrame = CFrame.new(entitylib.character.RootPart.Position) * CFrame.Angles(XToggle.Enabled and val or x, YToggle.Enabled and val or y, ZToggle.Enabled and val or z)
						elseif AngularVelocity then
							AngularVelocity.Parent = entitylib.isAlive and entitylib.character.RootPart
							AngularVelocity.MaxTorque = Vector3.new(XToggle.Enabled and math.huge or 0, YToggle.Enabled and math.huge or 0, ZToggle.Enabled and math.huge or 0)
							AngularVelocity.AngularVelocity = Vector3.new(Value.Value, Value.Value, Value.Value)
						end
					end
				end))
			else
				if entitylib.isAlive and Mode.Value == 'RotVelocity' then
					entitylib.character.Humanoid.AutoRotate = true
				end
				if AngularVelocity then
					AngularVelocity.Parent = nil
				end
			end
		end,
		Tooltip = 'Makes your character spin around in circles (does not work in first person)'
	})
	Mode = SpinBot:CreateDropdown({
		Name = 'Mode',
		List = {'CFrame', 'RotVelocity', 'BodyMover'},
		Function = function(val)
			if AngularVelocity then
				AngularVelocity:Destroy()
				AngularVelocity = nil
			end
			AngularVelocity = val == 'BodyMover' and Instance.new('BodyAngularVelocity') or nil
		end
	})
	Value = SpinBot:CreateSlider({
		Name = 'Speed',
		Min = 1,
		Max = 100,
		Default = 40
	})
	XToggle = SpinBot:CreateToggle({Name = 'Spin X'})
	YToggle = SpinBot:CreateToggle({
		Name = 'Spin Y',
		Default = true
	})
	ZToggle = SpinBot:CreateToggle({Name = 'Spin Z'})
end)

run(function()
	local Swim
	local terrain = cloneref(workspace:FindFirstChildWhichIsA('Terrain'))
	local lastpos = Region3.new(Vector3.zero, Vector3.zero)

	Swim = vape.Categories.Blatant:CreateModule({
		Name = 'Swim',
		Function = function(callback)
			if callback then
				Swim:Clean(runService.PreSimulation:Connect(function(dt)
					if entitylib.isAlive then
						local root = entitylib.character.RootPart
						local moving = entitylib.character.Humanoid.MoveDirection ~= Vector3.z


import pandas as pd
from .base import BaseStrategy

class SmaCrossoverStrategy(BaseStrategy):
    """
    A strategy based on the crossover of two Simple Moving Averages (SMAs).
    """
    def __init__(self, short_window: int = 20, long_window: int = 50):
        if short_window >= long_window:
            raise ValueError("short_window must be less than long_window")
        self.short_window = short_window
        self.long_window = long_window

    def generate_signals(self, candles_df: pd.DataFrame) -> pd.DataFrame:
        """
        Calculates SMAs and generates BUY/SELL signals.
        - BUY signal when the short SMA crosses above the long SMA.
        - SELL signal when the short SMA crosses below the long SMA.
        """
        if 'close' not in candles_df.columns:
            raise ValueError("Candles DataFrame must contain a 'close' column.")

        # Create a copy to avoid modifying the original DataFrame
        df = candles_df.copy()

        # Calculate SMAs
        df['short_sma'] = df['close'].rolling(window=self.short_window, min_periods=1).mean()
        df['long_sma'] = df['close'].rolling(window=self.long_window, min_periods=1).mean()

        # Initialize signal column
        df['signal'] = 'HOLD'

        # Determine the crossover points
        # The position is 1 if short_sma > long_sma, 0 otherwise.
        # We use .shift(1) to get the previous period's position to detect the crossover event.
        position = pd.Series(df['short_sma'] > df['long_sma']).astype(int)

        # A BUY signal is when the position changes from 0 to 1
        df.loc[position.diff() == 1, 'signal'] = 'BUY'

        # A SELL signal is when the position changes from 1 to 0
        df.loc[position.diff() == -1, 'signal'] = 'SELL'

        return df

# Example Usage
if __name__ == '__main__':
    # Create some sample data
    data = {
        'close': [100, 102, 105, 103, 108, 110, 115, 112, 109, 105, 100, 98, 95, 99, 103, 108, 112, 118, 122, 120]
    }
    sample_df = pd.DataFrame(data)

    # Initialize and run the strategy
    strategy = SmaCrossoverStrategy(short_window=5, long_window=10)
    result_df = strategy.generate_signals(sample_df)

    print("SMA Crossover Strategy Results:")
    print(result_df[['close', 'short_sma', 'long_sma', 'signal']])

    print("\nSignals generated:")
    print(result_df[result_df['signal'] != 'HOLD'])