-319">319        """Imports the mass features from the HDF5 file.
320
321        Parameters
322        ----------
323        mass_spectra : LCMSBase | MassSpectraBase
324            The MassSpectraBase or LCMSBase object to populate with mass features.
325
326        Returns
327        -------
328        None, but populates the 'mass_features' attribute on the LCMSBase or MassSpectraBase
329        object with a dictionary of the 'mass_features' from the HDF5 file.
330
331        """
332        dict_group_load = self


35px 8px 14px;margin-bottom:20px;text-shadow:0 1px 0 rgba(255,255,255,0.5);background-color:#ff0;border:1px solid #f00;-webkit-border-radius:none;-moz-border-radius:none;border-radius:none}.alert,.alert h4{color:#000}.alert h4{margin:0}.alert .close{position:relative;top:-2px;right:-21px;line-height:20px}.alert-success{color:#fff;background-color:#008000;border-color:#0a0}.alert-success h4{color:#fff}.alert-danger,.alert-error{color:#fff;background-color:#f00;border-color:#a00}.alert-danger h4,.alert-error h4{color:#fff}.alert-info{color:#000;background-color:#0ff;border-color:#aa0}.alert-info h4{color:#000}.alert-block{padding-top:14px;padding-bottom:14px}.alert-block>p,.alert-block>ul{margin-bottom:0}.alert-block p+p{margin-top:5px}.nav{margin-bottom:20px;margin-left:0;list-style:none}.nav>li>a{display:block}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li>a>img{max-width:none}.nav>.pull-right{float:right}.nav-header{display:block;padding:3px 15px;font-size:11px;font-weight:bold;line-height:20px;color:#999;text-shadow:0 1px 0 rgba(255,255,255,0.5);text-transform:uppercase}.nav li+.nav-header{margin-top:9px}.nav-list{padding-right:15px;padding-left:15px;margin-bottom:0}.nav-list>li>a,.nav-list .nav-header{margin-right:-15px;margin-left:-15px;text-shadow:0 1px 0 rgba(255,255,255,0.5)}.nav-list>li>a{padding:3px 15px}.nav-list>.active>a,.nav-list>.active>a:hover,.nav-list>.active>a:focus{color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.2);background-color:#0ee}.nav-list [class^="icon-"],.nav-list [class*=" icon-"]{margin-right:2px}.nav-list .divider{*width:100%;height:1px;margin:9px 1px;*margin:-5px 0 5px;overflow:hidden;background-color:#e5e5e5;border-bottom:1px solid #fff}.nav-tabs,.nav-pills{*zoom:1}.nav-tabs:before,.nav-pills:before,.nav-tabs:after,.nav-pills:after{display:table;line-height:0;content:""}.nav-tabs:after,.nav-pills:after{clear:both}.nav-tabs>li,.nav-pills>li{float:left}.nav-tabs>li>a,.nav-pills>li>a{padding-right:12px;padding-left:12px;margin-right:2px;line-height:14px}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{margin-bottom:-1px}.nav-tabs>li>a{padding-top:8px;padding-bottom:8px;line-height:20px;border:1px solid transparent;-webkit-border-radius:4px 4px 0 0;-moz-border-radius:4px 4px 0 0;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover,.nav-tabs>li>a:focus{border-color:#eee #eee #ddd}.nav-tabs>.active>a,.nav-tabs>.active>a:hover,.nav-tabs>.active>a:focus{color:#555;cursor:default;background-color:#00f;border:1px solid #ddd;border-bottom-color:transparent}.nav-pills>li>


%2Fatth.jzb.com%2Fforum%2F201507%2F30%2F133923yldlw9959ethludz.png"),
            Text("item 4"),
            Text("item 5"),
            Text("item 6"),
            Image("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1598432560218&di=86775e7582bd602267d8d77a4e04c734&imgtype=0&src=http%3A%2F%2Fatth.jzb.com%2Fforum%2F201507%2F30%2F133923yldlw9959ethludz.png"),
            Text("item 7"),
            Text("item 8"),
            Image("https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1598432560218&di=86775e7582bd602267d8d77a4e04c734&imgtype=0&src=http%3A%2F%2Fatth.jzb.com%2Fforum%2F201507%2F30%2F133923yldlw9959ethludz.png"),
            Text("item 9")
        )
        varietyAdapter.dataList = datas

        rv?.adapter = varietyAdapter
        rv?.layoutManager = LinearLayoutManager(this)
        varietyAdapter.notifyDataSetChanged()
    }
}package test.taylor.com.taylorcode.ui.custom_view.progress_view

import android.annotation.SuppressLint
import android.content.Context
import android.content.res.Resources
import android.graphics.Canvas
import android.graphics.Color
import android.graphics.Paint
import android.graphics.RectF
import android.util.AttributeSet
import android.util.TypedValue
import android.view.View
import kotlin.properties.Delegates

/**
 * a linear progress bar
 */
class ProgressBar @JvmOverloads constructor(context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) :
    View(context, attrs, defStyleAttr) {

    companion object {
        const val HORIZONTAL = 1
        const val VERTICAL = 2
    }

    /**
     * the background color of the whole bar
     */
    var backgroundColor: String = "#00ff00"
        set(value) {
            field = value
            barPaint.color = Color.parseColor(value)
        }

    var progress: Progress? = null

    var orientation: Int = HORIZONTAL
    var paddingStart: Float = 0f
        set(value) {
            field = value.dp
        }
    var paddingEnd: Float = 0f
        set(value) {
            field = value.dp
        }
    var paddingTop: Float = 0f
        set(value) {
            field = value.dp
        }
    var paddingBottom: Float = 0f
        set(value) {
            field = value.dp
        }

    var padding: Float = 0f
        set(value) {
            field = value.dp
            paddingStart = value
            paddingEnd = value
            paddingTop = value
            paddingBottom = value
        }

    /**
     * the horizontal radius of background round corner
     */
    var backgroundRx: Float = 0f
        set(value) {
            field = value.dp
        }

    /**
     * the vertical radius of background round corner
     */
    var backgroundRy: Float = 0f
        set(value) {
            field = value.dp
        }

    /**
     * the horizontal radius of progress round corner
     */
    var progressRx: Float = 0f
        set(value) {
            field = value.dp
        }

    /**
     * the vertical radius of progress round corner
     */
    var progressRy: Float = 0f
        set(value) {
            field = value.dp
        }

    /**
     * the percentage of bar, range from 0% to 100%
     */
    var percentage: Int by Delegates.observable(0) { _, oldValue, newValue ->
        progress?.onPercentageChange(oldValue, newValue)
        postInvalidate()
    }

    private var barPaint: Paint = Paint(Paint.ANTI_ALIAS_FLAG).apply {
        color = Color.parseColor(backgroundColor)


30940
IE9QRU4= 30941
LnNlbmRNZXNzYWdl 30942
X2NhbWVyYQ== 30943
X3RpbGU= 30944
IHRoZXJt 30945
b25vbW91cw== 30946
IGRpc2Fkdg== 30947
IG5hYXI= 30948
aW5kZXhPZg== 30949
IFBQ 30950
LnByb3RvY29s 30951
QUZF 30952
IHRleHR1cmVz 30953
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj 30954
dW1iYWk= 30955
LnN0YXRz 30956
IEdF 30957
IGll 30958
IFNURA== 30959
IE1hbm4= 30960
LnJlZmxlY3Q= 30961
S0I= 30962
IGRpdmU= 30963
Lndhdg== 30964
LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t 30965
L3NldHRpbmdz 30966
LmxpZmVjeWNsZQ== 30967
IGRhdWdodGVycw== 30968
b3J1cw== 30969
dWJlcg== 30970
TklORw== 30971
c3RyaQ== 30972
IFRpcA== 30973
IHpu 30974
IHN3aXRjaGVk 30975
aW5ldA== 30976
dWZmeQ== 30977
IFRyYW5zcG9ydGF0aW9u 30978
KGNvbmY= 30979
ZnJpY2E= 30980
IFhM 30981
IExlYWQ= 30982
X3BlcmNlbnQ= 30983
PE1hcA== 30984
IHRocnVzdA== 30985
b3Ji 30986
aWtr 30987
IHRyYXVtYQ== 30988
QWNjZXNzb3I= 30989
IEZpdA== 30990
IFN0cmluZ0J1ZmZlcg== 30991
ZXhwbA== 30992
KHNjcmVlbg== 30993
IGF1ZGllbmNlcw== 30994
IE9QVElPTg== 30995
X3JvdW5k 30996
W25vZGU= 30997
YmVo 30998
LT5fXw== 30999
cGVybWlzc2lvbnM= 31000
IERldGVybWluZQ== 31001
Lk1hbg== 31002
IGFkdmFuY2Vz 31003
LklucHV0U3RyZWFt 31004
IHN0cm9uZ2VzdA== 31005
IGVCYXk= 31006
ICMt 31007
IGRpcm5hbWU= 31008
IFNNUw== 31009
IG1lZGljYXRpb25z 31010
IGFtZW5kZWQ= 31011
IGNodXJjaGVz 31012
IEltcGVyaWFs 31013
JHJvdw== 31014
IE1hZGlzb24= 31015
IEluc3A= 31016
IGFmZmFpcg== 31017
IHBzeWNob2xvZ3k= 31018
dmg= 31019
IHNldmVyaXR5 31020
4oCQ 31021
IHN0cmlwcw== 31022
QUg= 31023
dmVydGlzaW5n 31024
IGNvbnNl 31025
SU1BR0U= 31026
IFN0YXRz 31027
CXNj 31028
LkN1cnNvcg== 31029
IGZyZWV6ZQ== 310


checked) then
      this.checked = nil
   else
      this.checked = true
   end
end

-- Thanks to Yatlas for this code
function lazyr.mm.Button_BeingDragged()
    -- Thanks to Gello for this code
    local xpos,ypos = GetCursorPosition()
    local xmin,ymin = Minimap:GetLeft(), Minimap:GetBottom()

    xpos = xmin-xpos/UIParent:GetScale()+70
    ypos = ypos/UIParent:GetScale()-ymin-70

    lazyr.mm.Button_SetPosition(math.deg(math.atan2(ypos,xpos)))
end

functio


6263 豉6262
酉 部
酊6789 酐1638 酎6793 酏6559 酤6800 酢6797 酡6801 酰7913
酩6802 酯7927 酽9433 酾9432 酲6805 酴6809 酹6810 醌4128
醅6813 醐6820 醍6819 醑9428 醢6826 醣7864 醪6828 醭0085
醮6831 醯6832 醵6835 醴6833 醺6836
足 部
趸6485 跫6417 蹙6464 蹩9345 趵6399 趼3644 趺6402 跄6461
跖6412 跗6416 跚6413 跞6491 跎6408 跏6409 跛6414 跬6423
跷6475 跸6462 跣6420 跹6494 跻6487 跤9332 踉6428 跽6427
踔6433 踝6435 踟6442 踬6492 踮6443 踣6438 踯6490 蹀6454
踹6447 踵6446 踽6449 踱6453 蹉6458 蹁6450 蹂6451 蹑6495
蹒6466 蹊6459 蹊1793 蹰6480 蹶6474 蹼6349 蹼9349 蹯6471
蹴6473 躅6483 躏6497 躔6493 躐6489 躞9351
豸 部
豸6282 貂6285 貊6289 貅6287 貔6293
角 部
斛2437 觖6039 觞6050 觚6040 觜9278 觥6044 觫6046 觯6052
言 部
訾6088 謦6205讦6063 讧6069 讪6065 讴6209 讵6093 讷6077
诂6089 诃6084 诋6090 诏6096 诎6099 诒6095 诓6119 诔6120
诖6118 诘6113 诙6117 诜6123 诟6110 诠6112 诤6154 诨6294
诨9294 诩6103 诮6132 诰6138 诳6128 诹6155 诼6157 诿6152
谀6161 谂6159 谄6149 谇6144 谌6186 谏6169 谑9195 谒6181
谔6166 谕6170 谖6178 谙6173 谛6167 谘6171 谝6163 谟6206
谠6249 谡6204 谥6198 谧6194 谪6207 谫6237 谮6220 谯6222
谲6216 谳6250 谵6228 谶6244
雨 部
雩7184 雩7084 雳7225 雯7186 霆7200 霁7221 霈7198 霏7204
霎7203 霪7214 霭7224 霰7213 霾7877
齿 部
龀7223 龃7880 龆7882 龈7883 龉7886 龊


  readonly domain: LinearDomain;

  /** @override */
  readonly range: this;

  union(that: Range<Y>): Range<Y>;

  /** @override */
  equivalentTo(that: unknown, epsilon?: number): boolean;

  /** @override */
  canEqual(that: unknown): boolean;

  /** @override */
  equals(that: unknown): boolean;

  /** @override */
  toString(): string;
}

/** @public */
export const Range = (function (_super: typeof Mapping) {
  const Range = function <Y>(y0: Y, y1: Y): Range<Y> {
    const range = function (u: number): Y {
      return u < 1 ? range[0] : range[1];
    } as Range<Y>;
    Object.setPrototypeOf(range, Range.prototype);
    (range as Mutable<typeof range>)[0] = y0;
    (range as Mutable<typeof range>)[1] = y1;
    return range;
  } as {
    <Y>(y0: Y, y1: Y): Range<Y>;

    /** @internal */
    prototype: Range<any>;

    readonly unit: LinearRange;
  };

  Range.prototype = Object.create(_super.prototype);
  Range.prototype.constructor = Range;

  Object.defineProperty(Range.prototype, "domain", {
    get<Y>(this: Range<Y>): LinearDomain {
      return Domain.unit;
    },
    configurable: true,
  });

  Object.defineProperty(Range.prototype, "range", {
    get<Y>(this: Range<Y>): Range<Y> {
      return this;
    },
    configurable: true,
  });

  Range.prototype.union = function <Y>(this: Range<Y>, that: Range<Y>): Range<Y> {
    const y00 = this[0];
    const y01 = this[1];
    const y10 = that[0];
    const y11 = that[1];
    let y0: Y;
    let y1: Y;
    const y0Order = Values.compare(y00, y01);
    const y1Order = Values.compare(y10, y11);
    if (y0Order <= 0 && y1Order <= 0) {
      y0 = Values.compare(y00, y10) <= 0 ? y00 : y10;
      y1 = Values.compare(y01, y11) >= 0 ? y01 : y11;
    } else if (y0Order >= 0 && y1Order >= 0) {
      y0 = Values.compare(y00, y10) >= 0 ? y00 : y10;
      y1 = Values.compare(y01, y11) <= 0 ? y01 : y11;
    } else if (y0Order <= 0 && y1Order >= 0) {
      y0 = Values.compare(y00, y11) <= 0 ? y00 : y11;
      y1 = Values.compare(y01, y10) >= 0 ? y01 : y10;
    } else { // y0Order >= 0 && y1Order <= 0
      y0 = Values.compare(y01, y10) <= 0 ? y01 : y10;
      y1 = Values.compare(y00, y11) >= 0 ? y00 : y11;
    }
    return Range(y0, y1);
  };

  Range.prototype.equivalentTo = function <Y>(this: Domain<Y>, that: unknown, epsilon?: number): boolean {
    if (this === that) {
      return true;
    } else if (that instanceof Range) {
      return Values.equivalent(this[0], that[0], epsilon)
          && Values.equivalent(this[1], that[1], epsilon);
    }
    return false;
  };

  Range.prototype.canEqual = function <Y>(this: Domain<Y>, that: unknown): boolean {
    return that instanceof Range;
  };

  Range.prototype.equals = function <Y>(this: Domain<Y>, that: unknown): boolean {
    if (this === that) {
      return true;
    } else if (that instanceof Range) {
      return that.canEqual(this)
          && Values.equal(this[0], that[0])
          && Values.equal(this[1], that[


) {
      nf = 1 / (near - far);
      a33 = (far + near) * nf;
      // a43 = (2 * far * near) * nf;
      a43 = 2 * far * near * nf;
    } else {
      a33 = -1;
      a43 = -2 * near;
    }

    const out = new Mat4(
      f / aspect,
      0,
      0,
      0,

      0,
      f,
      0,
      0,

      0,
      0,
      a33,
      -1,

      0,
      0,
      a43,
      0
    );

    return out;
  }

  /**
   * Generates a orthogonal projection matrix with the given bounds
   *
   * @param {number} left Left bound of the frustum
   * @param {number} right Right bound of the frustum
   * @param {number} bottom Bottom bound of the frustum
   * @param {number} top Top bound of the frustum
   * @param {number} near Near bound of the frustum
   * @param {number} far Far bound of the frustum
   * @returns {mat4} out
   */
  static ortho(left, right, bottom, top, near, far) {
    const lr = 1 / (left - right),
      bt = 1 / (bottom - top),
      nf = 1 / (near - far);

    return new Mat4(
      -2 * lr,
      0,
      0,
      0,

      0,
      -2 * bt,
      0,
      0,

      0,
      0,
      2 * nf,
      0,

      (left + right) * lr,
      (top + bottom) * bt,
      (far + near) * nf,
      1
    );
  }

  /**
   * Generates a look-at matrix with the given eye position, focal point, and up axis.
   * If you want a matrix that actually makes an object look at another object, you should use targetTo instead.
   *
   * @param {mat4} out mat4 frustum matrix will be written into
   * @param {vec3} eye Position of the viewer
   * @param {vec3} center Point the viewer is looking at
   * @param {vec3} up vec3 pointing up
   * @returns {mat4} out
   */
  static lookAt(eye, center, up) {
    if (eye.array) eye = eye.array;
    if (center.array) center = center.array;
    if (up.array) up = up.array;

    if (
      eye.length &&
      eye.length >= 3 &&
      center.length &&
      center.length >= 3 &&
      up.length &&
      up.length >= 3
    ) {
      const e = new Vec3(...eye),
        c = new Vec3(...center),
        u = new Vec3(...up);

      if (
        Math.abs(e.x - c.x) < EPSILON &&
        Math.abs(e.y - c.y) < EPSILON &&
        Math.abs(e.z - c.z) < EPSILON
      ) {
        return new Mat4();
      }

      const off = e.subtractNew(c);
      let l = 1 / Math.hypot(off.x, off.y, off.z);
      off.x *= l;
      off.y *= l;
      off.z *= l;

      const or = new Vec3(
        u.y * off.z - u.z * off.y,
        u.z * off.x - u.x * off.z,
        u.x * off.y - u.y * off.x
      );
      l = Math.hypot(or.x, or.y, o


ey-500: map-get($clr-grey-list, "500");
$clr-grey-600: map-get($clr-grey-list, "600");
$clr-grey-700: map-get($clr-grey-list, "700");
$clr-grey-800: map-get($clr-grey-list, "800");
$clr-grey-900: map-get($clr-grey-list, "900");

//
// Blue grey
//

$clr-blue-grey-list: (
  "base": #607d8b,
  "50":   #eceff1,
  "100":  #cfd8dc,
  "200":  #b0bec5,
  "300":  #90a4ae,
  "400":  #78909c,
  "500":  #607d8b,
  "600":  #546e7a,
  "700":  #455a64,
  "800":  #37474f,
  "900":  #263238,
);

$clr-blue-grey:     map-get($clr-blue-grey-list, "base");

$clr-blue-grey-50:  map-get($clr-blue-grey-list, "50");
$clr-blue-grey-100: map-get($clr-blue-grey-list, "100");
$clr-blue-grey-200: map-get($clr-blue-grey-list, "200");
$clr-blue-grey-300: map-get($clr-blue-grey-list, "300");
$clr-blue-grey-400: map-get($clr-blue-grey-list, "400");
$clr-blue-grey-500: map-get($clr-blue-grey-list, "500");
$clr-blue-grey-600: map-get($clr-blue-grey-list, "600");
$clr-blue-grey-700: map-get($clr-blue-grey-list, "700");
$clr-blue-grey-800: map-get($clr-blue-grey-list, "800");
$clr-blue-grey-900: map-get($clr-blue-grey-list, "900");

//
// Black
//

$clr-black-list: (
  "base": #000
);

$clr-black: map-get($clr-black-list, "base");

//
// White
//

$clr-white-list: (
  "base": #fff
);

$clr-white: map-get($clr-white-list, "base");

//
// List for all Colors for looping
//

$clr-list-all: (
  "red":         $clr-red-list,
  "pink":        $clr-pink-list,
  "purple":      $clr-purple-list,
  "deep-purple": $clr-deep-purple-list,
  "indigo":      $clr-indigo-list,
  "blue":        $clr-blue-list,
  "light-blue":  $clr-light-blue-list,
  "cyan":        $clr-cyan-list,
  "teal":        $clr-teal-list,
  "green":       $clr-green-list,
  "light-green": $clr-light-green-list,
  "lime":        $clr-lime-list,
  "yellow":      $clr-yellow-list,
  "amber":       $clr-amber-list,
  "orange":      $clr-orange-list,
  "deep-orange": $clr-deep-orange-list,
  "brown":       $clr-brown-list,
  "grey":        $clr-grey-list,
  "blue-grey":   $clr-blue-grey


 "休眠法衣",
[33580] = "迅捷之爪手環",
[33581] = "維酷人的侮辱語",
[33582] = "野性侵蝕裹足",
[33583] = "偉大野獸護腰",
[33584] = "秘法殲滅窄褲",
[33585] = "那魯的無色長褲",
[33586] = "勤學裹手",
[33587] = "聖光祝福手套",
[33588] = "符文法術腕輪",
[33589] = "寧靜思緒護腕",
[33590] = "惡魔披風",
[33591] = "暗影施法者披氅",
[33592] = "遠古儀式披風",
[33593] = "思力克的安撫披風",
[33599] = "掠龍血液樣本",
[33605] = "冰結之核",
[33606] = "露麗兒的墜飾",
[33607] = "附魔冰結之核",
[33611] = "鍬牙韌帶",
[33612] = "新鮮的肉塊",
[33613] = "憎惡體配件工具組",
[33614] = "空的藥劑師燒瓶",
[33615] = "維酷血液瓶",
[33616] = "不穩定的混合物",
[33617] = "安定的化合物",
[33618] = "座狼偽裝",
[33619] = "黎珊達的菌種",
[33620] = "藥劑師的包裹",
[33621] = "瘟疫噴霧劑",
[33622] = "設計圖:不懈的大地風暴鑽石",
[33627] = "派比的特殊混合物",
[33628] = "北地刺鬚魚",
[33629] = "寒霜絲囊",
[33630] = "冰尖牙",
[33631] = "冰霜獸爪",
[33632] = "冰柱尖牙",
[33634] = "礦錘的精確炸彈",
[33635] = "試劑袋",
[33637] = "薰香爐",
[33638] = "符刻水晶",
[33639] = "發光的符石",
[33640] = "烈怒",
[33661] = "復仇鬥士屏障",
[33662] = "復仇鬥士碎骨錘",
[33663] = "復仇鬥士磨骨槌",
[33664] = "復仇鬥士鍊甲護甲",
[33665] = "復仇鬥士鍊甲護手",
[33666] = "復仇鬥士鍊甲頭盔",
[33667] = "復仇鬥士鍊甲護腿",
[33668] = "復仇鬥士鍊甲肩甲",
[33669] = "復仇鬥士斬斧",
[33670] = "復仇鬥士斬首者",


button .brz-ui-btn-link.brz-ui-btn-disabled,.brz-ed .brz-ui-button .brz-ui-btn-link.brz-ui-btn-disabled:hover{background-color:transparent}.brz-ed .brz-ui-button .brz-ui-btn-dashed.brz-ui-btn-disabled:hover:not(.brz-ui-btn-disabled),.brz-ed .brz-ui-button .brz-ui-btn-dashed.brz-ui-btn-disabled:not(.brz-ui-btn-disabled),.brz-ed .brz-ui-button .brz-ui-btn-link.brz-ui-btn-disabled:hover:not(.brz-ui-btn-disabled),.brz-ed .brz-ui-button .brz-ui-btn-link.brz-ui-btn-disabled:not(.brz-ui-btn-disabled){border-color:transparent;background-color:transparent}.brz-ed .brz-ui-button .brz-ui-btn-link{font-weight:600;padding:0;margin:0;border:none;line-height:8px;height:auto}.brz-ed .brz-ui-button .brz-ui-btn-link i{margin-left:7px;font-size:19px;color:var(--color-dark,#212733);vertical-align:sub}.brz-ed .brz-ui-button .brz-ui-btn.brz-ui-btn>.anticon{vertical-align:sub}.brz-ed .brz-ui-button .brz-ui-btn-background-ghost:hover{color:var(--color-gray,#777f86)}.brz-ed .brz-ui-button__group.brz-ui-btn-group{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.brz-ed .brz-ui-button__group.brz-ui-btn-group:not(.brz-ui-button__group--segmented) .brz-ui-button{margin:0 12.5px 0 0}.brz-ed .brz-ui-button__group.brz-ui-btn-group:not(.brz-ui-button__group--segmented)>.brz-ui-button .brz-ui-btn,.brz-ed .brz-ui-button__group.brz-ui-btn-group:not(.brz-ui-button__group--segmented)>span>.brz-ui-button .brz-ui-btn{border-radius:3px}.brz-ed .brz-ui-button__group.brz-ui-btn-group .brz-ui-button--primary+.brz-ui-button--primary .brz-ui-btn-primary[disabled],.brz-ed .brz-ui-button__group.brz-ui-btn-group .brz-ui-button--primary:not(:first-child),.brz-ed .brz-ui-button__group.brz-ui-btn-group .brz-ui-button--primary:not(:first-child) .brz-ui-btn-primary[disabled]{border-left-color:var(--color-gray-light,#d5d9db)}.brz-ed .brz-ui-button__group.brz-ui-button__group--segmented .brz-ui-button.brz-ui-button:not(:first-child) .brz-ui-btn{border-left:0}.brz-ed .brz-ui-button__group.brz-ui-button__group--segmented>.brz-ui-button:last-child:not(:first-child) .brz-ui-btn,.brz-ed .brz-ui-button__group.brz-ui-button__group--segmented>span:first-child:not(:first-child)>.brz-ui-button .brz-ui-btn{border-top-right-radius:3px;border-bottom-right-radius:3px}.brz-ed .brz-ui-button__group.brz-ui-button__group--s


user` ASC))" + //
            " ENGINE = InnoDB" + //
            " DEFAULT CHARACTER SET = utf8mb4;" //
        ;

    String createAccessKeysTableSQL = //
        "CREATE TABLE IF NOT EXISTS `" + dataBase.databaseName + "`.`email_keys` (" + //
            "  `id` INT(4) UNSIGNED NOT NULL AUTO_INCREMENT," + //
            "  `user` INT(4) UNSIGNED NOT NULL," + //
            "  `public_key` TEXT NOT NULL," + //
            "  `created` DATETIME DEFAULT CURRENT_TIMESTAMP," + //
            "  `expires` DATETIME," + //
            "  PRIMARY KEY (`id`)," + //
            "  INDEX `u` (`user` ASC))" + //
            " ENGINE = InnoDB" + //
            " DEFAULT CHARACTER SET = utf8mb4;" //
        ;

    String createSpaceTableSQL = //
        "CREATE TABLE IF NOT EXISTS `" + dataBase.databaseName + "`.`spaces` (" + //
            "  `id` INT(4) UNSIGNED NOT NULL AUTO_INCREMENT," + //
            "  `owner` INT(4) UNSIGNED NOT NULL," + //
            "  `name` VARCHAR(128) NOT NULL," + //
            "  `enabled` BOOLEAN DEFAULT TRUE," + //
            "  `storage_bytes` BIGINT DEFAULT 0," + //
            "  `plan` MEDIUMTEXT NOT NULL," +
            "  `rxhtml` MEDIUMTEXT," +
            "  `policy` MEDIUMTEXT," +
            "  `capacity` MEDIUMTEXT NULL," +
            "  `hash` VARCHAR(256) NOT NULL," + //
            "  `created` DATETIME DEFAULT CURRENT_TIMESTAMP," + //
            "  `updated` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP," + //
            "  PRIMARY KEY (`id`)," + //
            "  UNIQUE `u` (`name`)," + //
            "  INDEX `c` (`owner`))" + //
            " ENGINE = InnoDB" + //
            " DEFAULT CHARACTER SET = utf8mb4;" //
        ;

    String createGrantTableSQL = //
        "CREATE TABLE IF NOT EXISTS `" + dataBase.databaseName + "`.`grants` (" + //
            "  `id` INT(4) UNSIGNED NOT NULL AUTO_INCREMENT," + //
            "  `space` INT(4) UNSIGNED NOT NULL," + //
            "  `user` INT(4) UNSIGNED NOT NULL," + //
            "  `role` INT(1) UNSIGNED NOT NULL," + //
            "  PRIMARY KEY (`id`)," + //
            "  INDEX  `u` (`space`, `user` ASC))" + //
            " ENGINE = InnoDB" + //
            " DEFAULT CHARACTER SET = utf8mb4;" //
        ;

    String createAuthoritiesTableSQL = //
        "CREATE TABLE IF NOT EXISTS `" + dataBase.databaseName + "`.`authorities` (" + //
            "  `id` INT(4) UNSIGNED NOT NULL AUTO_INCREMENT," + //
            "  `owner` INT(4) UNSIGNED NOT NULL," + //
            "  `authority` VARCHAR(64) NOT NULL," + //
            "  `keystore` TEXT NOT NULL," + //
            "  `created` DATETIME DEFAULT CURRENT_TIMESTAMP," + //
            "  PRIMARY KEY (`id`)," + //
            "  INDEX `o` (`owner`)," + //
            "  UNIQUE `s` (`authority`)," + //
            "  INDEX `c` (`created` DESC))" + //
            " ENGINE = InnoDB" + //
            " DEFAULT CHARACTER SET = utf8mb4;" //
        ;

    String createHostsTableSQL = //
        "CREATE TABLE IF NOT EXISTS `" + dataBase.databaseName + "`.`hosts` (" + //
            "  `id` INT(6) U


atBeat: Float, actualBeat: Float, inputCalibration: InputCalibration) {
        this.id = -1L

        val stem = this.stem
        val audio = stem?.beadsMusic
        val audioOffsetSec = inputCalibration.audioOffsetMs / 1000f

        if (stem == null) {
            Paintbox.LOGGER.warn("Stem for stem ID $stemID is null")
        } else if (audio == null) {
            Paintbox.LOGGER.warn("BeadsAudio for stem ID $stemID is null")
        } else {
            val secOffset = (engine.tempos.beatsToSeconds(actualBeat) - engine.tempos.beatsToSeconds(atBeat)) - audioOffsetSec
            val id = engine.soundInterface.playAudio(audio, SoundInterface.SFXType.DYNAMIC_MUSIC) { player ->
                player.killOnEnd = true

                if (secOffset.absoluteValue > 0.25f) {
                    // Adjust player position if off by too much
                    player.position = secOffset * 1000.0
                }
            }
            this.id = id
        }
    }

    override fun onAudioUpdate(atBeat: Float, actualBeat: Float) {
        val musicData = engine.musicData
        engine.soundInterface.getPlayer(this.id)?.apply {
            musicData.updatePlayerWithVolumeAndRate(this, volume = musicData.volumeMap.volumeAtBeat(atBeat))
        }
    }

    override fun onAudioEnd(atBeat: Float, actualBeat: Float) {
        engine.soundInterface.getPlayer(this.id)?.apply {
            this.addDependent(object : Glide(this.context, this.gain, 100f){
                override fun calculateBuffer() {
                    super.calculateBuffer()
                    this@apply.gain = this.value
                }
            }.apply {
                this.value = 0f
            })
        }
    }
}
package polyrhythmmania.storymode.gamemode.boss.scripting

import paintbox.Paintbox
import polyrhythmmania.engine.Engine
import polyrhythmmania.engine.Event

abstract class ScriptFunction(val script: Script) {

    protected val engine: Engine = script.engine

    abstract fun getEvents(): List<Event>

    fun MutableList<Event>.addEvent(evt: Event): MutableList<Event> {
        this.add(evt)
        return this
    }

    fun MutableList<Event>.addEvent(descriptor: String, evt: Event): MutableList<Event> {
        this.add(evt)
        return this
    }

    fun MutableList<Event>.addFunctionAsEvent(func: ScriptFunction): MutableList<Event> =
        this.addEvent(object : Event(this@ScriptFunction.engine) {
            init {
                this.beat = -script.beatRunahead
            }

            override fun onStart(currentBeat: Float) {
                script.addEventsToQueue(func.getEvents())
            }
        })

    fun MutableList<Event>.rest(duration: Float): MutableList<Event> =
        this.addEvent(Rest(duration, this@ScriptFunction.engine))

    fun MutableList<Event>.todo(desc: String): MutableList<Event> =
        this.addEvent(object : Event(engine) {
            override fun onStart(currentBeat: Float) {
                Paintbox.LOGGER.debug("Unimplemented event: $desc", "BossScriptFunction")
            }
        })

    @Suppress("UNUSED_PARAMETER")
    fun MutableList<Event>.note(note: String): MutableList<Event> = this

}
package polyrhythm


>{{ 'labels.inputs.Collected On' | translate }}
      {{ charge.chargeTimeType.value }}
    </ng-container>

  <button mat-raised-button matStepperPrevious>
    <fa-icon icon="arrow-left" class="m-r-10"></fa-icon>
    {{ 'labels.buttons.Previous' | translate }}
  </button>
  <button mat-raised-button matStepperNext>
    {{ 'labels.buttons.Next' | translate }}
    <fa-icon icon="arrow-right" class="m-l-10"></fa-icon>
  </button>
  <button mat-raised-button *ngIf="loanId" [routerLink]="['../', 'general']">
    {{ 'labels.buttons.Cancel' | translate }}
  </button>

  <ng-container *ngIf="loanDetails.summary">

{{ 'labels.heading.Performance History' | translate }}

              {{ 'labels.inputs.Number of Repayments' | translate }} :

              {{ loanDetails?.numberOfRepayments | formatNumber }}

              {{ 'labels.inputs.Maturity Date' | translate }} :

              {{ loanDetails?.timeline.expectedMaturityDate | dateFormat }}

  </ng-container>

{{ 'labels.heading.Loan Summary' | translate }}

      <ng-container matColumnDef="Empty">

        {{ ele.property }}
      </ng-container>

      <ng-container matColumnDef="Original">
        {{ 'labels.inputs.Original' | translate }}

          {{ ele.original | currency: currencyCode : 'symbol-narrow' : '1.2-2' }}

      </ng-container>

      <ng-container matColumnDef="Paid">
        {{ 'labels.inputs.Paid' | translate }}

          {{ ele.paid | currency: currencyCode : 'symbol-narrow' : '1.2-2' }}

      </ng-container>

      <ng-container matColumnDef="Adjustments">
        {{ 'labels.inputs.Credit Adjustments' | translate }}

          {{ ele.adjustment | currency: currencyCode : 'symbol-narrow' : '1.2-2' }}

      </ng-container>

      <ng-container matColumnDef="Waived">


T]IDLoc, searchParams *SearchParams, descendingOrder bool) *IDScores[T] {
	ids := make([]T, 0, len(idScores))
	for id := range idScores {
		ids = append(ids, id)
	}

	sort.Slice(ids, func(i, j int) bool {
		if idScores[ids[i]] == idScores[ids[j]] {
			return ids[i] < ids[j]
		}
		if descendingOrder {
			return idScores[ids[i]] > idScores[ids[j]]
		} else {
			return idScores[ids[i]] < idScores[ids[j]]
		}
	})
	topk := searchParams.offset + searchParams.limit
	if int64(len(ids)) > topk {
		ids = ids[:topk]
	}
	ret := IDScores[T]{
		make([]T, 0, searchParams.limit),
		make([]float32, 0, searchParams.limit),
		0,
		make([]IDLoc, 0, searchParams.limit),
	}
	for index := searchParams.offset; index < int64(len(ids)); index++ {
		score := idScores[ids[index]]
		if searchParams.roundDecimal != -1 {
			multiplier := math.Pow(10.0, float64(searchParams.roundDecimal))
			score = float32(math.Floor(float64(score)*multiplier+0.5) / multiplier)
		}
		ret.ids = append(ret.ids, ids[index])
		ret.scores = append(ret.scores, score)
		ret.locations = append(ret.locations, idLocs[ids[index]])
	}
	ret.size = int64(len(ret.ids))
	return &ret
}

func groupScore[T PKType](group *Group[T], scorerType string) (float32, error) {
	switch scorerType {
	case maxScorer:
		return group.maxScore, nil
	case sumScorer:
		return group.sumScore, nil
	case avgScorer:
		if len(group.idList) == 0 {
			return 0, merr.WrapErrParameterInvalid(1, len(group.idList),
				"input group for score must have at least one id, must be sth wrong within code")
		}
		return group.sumScore / float32(len(group.idList)), nil
	default:
		return 0, merr.WrapErrParameterInvalidMsg("input group scorer type: %s is not supported!", scorerType)
	}
}

type Group[T PKType] struct {
	idList     []T
	scoreList  []float32
	groupVal   any
	maxScore   float32
	sumScore   float32
	finalScore float32
}

func newGroupingIDScores[T PKType](idScores map[T]float32, idLocations map[T]IDLoc, searchParams *SearchParams, idGroup map[any]any) (*IDScores[T], error) {
	ids := make([]T, 0, len(idScores))
	for id := range idScores {
		ids = append(ids, id)
	}

	sort.Slice(ids, func(i, j int) bool {
		if idScores[ids[i]] == idScores[ids[j]] {
			return ids[i] < ids[j]
		}
		return idScores[ids[i]] > idScores[ids[j]]
	})

	buckets := make(map[interface{}]*Group[T])
	for _, id := range ids {
		score := idScores[id]
		groupVal := idGroup[id]
		if buckets[groupVal] == nil {
			buckets[groupVal] = &Group[T]{
				idList:    make([]T, 0),
				scoreList: make([]float32, 0),
				groupVal:  groupVal,
			}
		}
		if int64(len(buckets[groupVal].idList)) >= searchParams.groupSize {
			continue
		}
		buckets[groupVal].idList = append(buckets[groupVal].idList, id)
		buck


,
    fn Load_6(
        assemblyRef: *mut _AssemblyName,
        assemblySecurity: *mut _Evidence,
        pRetVal: *mut *mut _Assembly,
    ) -> HRESULT,
    fn Load_7(
        assemblyString: BSTR,
        assemblySecurity: *mut _Evidence,
        pRetVal: *mut *mut _Assembly,
    ) -> HRESULT,
    fn ExecuteAssembly(
        assemblyFile: BSTR,
        assemblySecurity: *mut _Evidence,
        pRetVal: *mut c_long,
    ) -> HRESULT,
    fn ExecuteAssembly_2(
        assemblyFile: BSTR,
        pRetVal: *mut c_long,
    ) -> HRESULT,
    fn ExecuteAssembly_3(
        assemblyFile: BSTR,
        assemblySecurity: *mut _Evidence,
        args: *mut SAFEARRAY, //String[]
        pRetVal: *mut c_long,
    ) -> HRESULT,
    fn get_FriendlyName(
        pRetVal: *mut BSTR,
    ) -> HRESULT,
    fn get_BaseDirectory(
        pRetVal: *mut BSTR,
    ) -> HRESULT,
    fn get_RelativeSearchPath(
        pRetVal: *mut BSTR,
    ) -> HRESULT,
    fn get_ShadowCopyFiles(
        pRetVal: *mut VARIANT_BOOL,
    ) -> HRESULT,
    fn GetAssemblies(
        pRetVal: *mut *mut SAFEARRAY, //Assembly[]
    ) -> HRESULT,
    fn AppendPrivatePath(
        path: BSTR,
    ) -> HRESULT,
    fn ClearPrivatePath() -> HRESULT,
    fn SetShadowCopyPath(
        s: BSTR,
    ) -> HRESULT,
    fn ClearShadowCopyPath( ) -> HRESULT,
    fn SetCachePath(
        s: BSTR,
    ) -> HRESULT,
    fn SetData(
        name: BSTR,
        data: VARIANT, //object
    ) -> HRESULT,
    fn GetData(
        name: BSTR,
        pRetVal: *mut VARIANT,
    ) -> HRESULT,
    fn SetAppDomainPolicy(
        domainPolicy: *mut _PolicyLevel,
    ) -> HRESULT,
    fn SetThreadPrincipal(
        principal: *mut IPrincipal,
    ) -> HRESULT,
    fn SetPrincipalPolicy(
        policy: *mut PrincipalPolicy,
    ) -> HRESULT,
    fn DoCallBack(
        theDelegate: _CrossAppDomainDelegate,
    ) -> HRESULT,
    fn get_DynamicDirectory(
        pRetVal: *mut BSTR,
    ) -> HRESULT,
}}use man::prelude::*;
use std::fs::File;
use std::io::{Error, Write};

fn main() -> Result<(), Error> {
    let path = "simplestats.1";
    let mut output = File::create(path)?;

    let msg = Manual::new("simplestats")
        .about("Prints simple statistics on a line delimited file with numbers.")
        .arg(Arg::new("path"))
        .example(
            Example::new()
                .text("Small Example")
                .command("cat numbers.txt")
                .output(
                    "
                    1
                    2
                    3
                    4
                    5
                    6
                    7
                    8
                    9
                    10
                ",
                ),
        )
        .example(
            Example::new()
                .text("Running the program")
                .command("simplestats numbers.txt")
                .output(
                    r#"
    +-----+-----+-------+-------+------+--------------------+
    | max | min | total | count | mean | stddev             |
    +-----+-----+-------+-------+------+--------------------+
    | 10  | 1   | 55    | 10    | 5.5  | 2.8722813232690143 |
    +-----+-----+-------+-------+------+--------------------+"#,
                ),
        )
        .author(Author::new("<NAME>").email("<EMAIL>"))
        .


 merge, publish, distribute, sublicense, and/or sell
 copies of the Software, and to permit persons to whom the Software is
 furnished to do so, subject to the following conditions:

 The above copyright notice and this permission notice shall be included in
 all copies or substantial portions of the Software.

 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 ****************************************************************************/

/**
 * @ignore
 */
sp._atlasPage_createTexture_webGL = function (self, path) {
    var texture = cc.textureCache.addImage(path);
    self.rendererObject = new cc.TextureAtlas(texture, 128);
    self.width = texture.getPixelsWide();
    self.height = texture.getPixelsHigh();
};

sp._atlasPage_createTexture_canvas = function(self, path) {
    self._texture = cc.textureCache.addImage(path);
};

sp._atlasPage_disposeTexture = function (self) {
    self.rendererObject.release();
};

sp._atlasLoader = {
    spAtlasFile:null,
    setAtlasFile:function(spAtlasFile){
        this.spAtlasFile = spAtlasFile;
    },
    load:function(page, line, spAtlas){
        var texturePath = cc.path.join(cc.path.dirname(this.spAtlasFile), line);
        if (cc._renderType === cc.game.RENDER_TYPE_WEBGL)
            sp._atlasPage_createTexture_webGL(page,texturePath);
        else
            sp._atlasPage_createTexture_canvas(page,texturePath);
    },
    unload:function(obj){
    }
};

/**
 * The event type of spine skeleton animation. It contains event types: START(0), END(1), COMPLETE(2), EVENT(3).
 * @constant
 * @type {{START: number, END: number, COMPLETE: number, EVENT: number}}
 */
sp.ANIMATION_EVENT_TYPE = {
    START: 0,
    END: 1,
    COMPLETE: 2,
    EVENT: 3
};

sp.TrackEntryListeners = function(startListener, endListener, completeListener, eventListener){
    this.startListener = startListener || null;
    this.endListener = endListener || null;
    this.completeListener = completeListener || null;
    this.eventListener = eventListener || null;
};

sp.TrackEntryListeners.getListeners = function(entry){
    if(!entry.rendererObject){
        entry.rendererObject = new sp.TrackEntryListeners();
        entry.listener = sp.trackEntryCallback;
    }
    return entry.rendererObject;
};

sp.trackEntryCallback = function(state, trackIndex, type, event, loopCount) {
    state.rendererObject.onTrackEntryEvent(trackIndex, type, event, loopCount);
};

/**
 * The skeleton animation of spine. It updates animation's state and skeleton's world transform.
 * @class
 * @extends sp.Skeleton
 * @example
 * var spineBoy = new sp.SkeletonAnimation('res/skeletons/spineboy.json', 'res/skeletons/spineboy.atlas');
 * this.addChild(spineBoy, 4);
 */
sp.SkeletonAnimation = sp.Skeleton.extend(/** @lends sp.SkeletonAnimation# */{
    _state: null,
    _target: null,
    _callback: null,

    _ownsAnimationStateData: false,
    _startListener: null,
    _endListener: null,
    _completeListener: null,
    _eventListener: null,

    /**
     * Initializes a sp.SkeletonAnimation. please do not call this function by yourself, you should pass the parameters to constructor to initialize it.
     * @override
     */


// Copyright (c) Epic Games Tools
// Licensed under the MIT license (https://opensource.org/license/mit/)

#ifndef DWARF_UNWIND_H
#define DWARF_UNWIND_H

typedef enum DW_CFI_RegisterRule
{
  DW_CFI_RegisterRule_Undefined,
  DW_CFI_RegisterRule_SameValue,
  DW_CFI_RegisterRule_Offset,
  DW_CFI_RegisterRule_ValOffset,
  DW_CFI_RegisterRule_Register,
  DW_CFI_RegisterRule_Expression,
  DW_CFI_RegisterRule_ValExpression,
  DW_CFI_RegisterRule_Architectural
} DW_CFI_RegisterRule;

typedef enum DW_CFA_Rule
{
  DW_CFA_Rule_Null,
  DW_CFA_Rule_RegOff,
  DW_CFA_Rule_Expression
} DW_CFA_Rule;

typedef struct DW_CFA
{
  DW_CFA_Rule rule;
  union {
    struct {
      DW_Reg reg;
      S64    off;
    };
    String8 expr;
  };
} DW_CFA;

typedef struct DW_CFI_Register
{
  DW_CFI_RegisterRule rule;
  union {
    S64     n;
    String8 expr;
  };
} DW_CFI_Register;

typedef struct DW_CFA_Row
{
  DW_CFA          cfa;
  DW_CFI_Register *regs;
  struct DW_CFA_Row *next;
} DW_CFA_Row;

typedef struct DW_CFI_Unwind
{
  DW_CFA_InstList  insts;
  DW_CIE          *cie;
  DW_FDE          *fde;
  DW_CFA_Row      *initial_row;
  DW_CFA_Row      *row;
  DW_CFA_InstNode *curr_inst;
  DW_CFA_Row      *free_rows;
  DW_Reg           reg_count;
  U64              pc;
  Arch             arch;
} DW_CFI_Unwind;

typedef enum {
  DW_UnwindStatus_Ok,
  DW_UnwindStatus_Fail,
  DW_UnwindStatus_Maybe
} DW_UnwindStatus;

#define DW_REG_READ(name) DW_UnwindStatus name(DW_Reg reg_id, void *buffer, U64 buffer_max, void *ud)
typedef DW_REG_READ(DW_RegRead);

#define DW_REG_WRITE(name) DW_UnwindStatus name(DW_Reg reg_id, void *value, U64 value_size, void *ud)
typedef DW_REG_WRITE(DW_RegWrite);

#define DW_MEM_READ(name) DW_UnwindStatus name(U64 addr, U64 size, void *buffer, void *ud)
typedef DW_MEM_READ(DW_MemRead);

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

internal DW_CFA_Row * dw_make_cfa_row(Arena *arena, U64 reg_count);
internal DW_CFA_Row * dw_copy_cfa_row(Arena *arena, U64 reg_count, DW_CFA_Row *row);

internal DW_CFI_Unwind * dw_cfi_unwind_init(Arena *arena, Arch arch, DW_CIE *cie, DW_FDE *fde, DW_DecodePtr *decode_ptr_func, void *decode_ptr_ud);
internal B32             dw_cfi_next_row(Arena *arena, DW_CFI_Unwind *uw);
internal DW_UnwindStatus dw_cfi_apply_register_rules(DW_CFI_Unwind *uw, DW_MemRead *mem_read_func, void *mem_read_ud, DW_RegRead *reg_read_func,  void *reg_read_ud, DW_RegWrite *reg_write_func, void *reg_write_ud);

#endif // DWARF_UNWIND_H


INTERRUPT_TIMING)
    digitalWrite(TIMING_OUTPUT_PIN, HIGH);
#  endif
    // Clear interrupt
    TC_GetStatus(TC_FOR_20_MS_TIMER, CHANNEL_FOR_20_MS_TIMER);//Clear channel status to fire again the interrupt.
    handleServoTimerInterrupt();
#  if defined(MEASURE_SERVO_EASING_INTERRUPT_TIMING)
    digitalWrite(TIMING_OUTPUT_PIN, LOW);
#  endif
}

#elif defined(ARDUINO_ARCH_SAMD)
void TC5_Handler(void) {
#  if defined(MEASURE_SERVO_EASING_INTERRUPT_TIMING)
    digitalWrite(TIMING_OUTPUT_PIN, HIGH);
#  endif
    // Clear interrupt
    TC5->COUNT16.INTFLAG.bit.MC0 = 1;
    handleServoTimerInterrupt();
#  if defined(MEASURE_SERVO_EASING_INTERRUPT_TIMING)
    digitalWrite(TIMING_OUTPUT_PIN, LOW);
#  endif
}

//#elif defined(ARDUINO_ARCH_APOLLO3)
//extern "C" void am_ctimer_isr(void) {
//    // Check and clear any active CTIMER interrupts.
//    uint32_t ui32Status = am_hal_ctimer_int_status_get(true);
//    am_hal_ctimer_int_clear(ui32Status);
//
//    // Run handlers for the various possible timer events.
//    am_hal_ctimer_int_service(ui32Status);
//}
#endif // defined(__AVR__)

/************************************
 * ServoEasing list functions
 ***********************************/

#if !defined(PROVIDE_ONLY_LINEAR_MOVEMENT)
void setEasingTypeForAllServos(uint_fast8_t aEasingType) {
    setEasingTypeForMultipleServos(ServoEasing::sServoArrayMaxIndex, aEasingType);
}

/**
 * Sets easing type aEasingType for the first aNumberOfServos in ServoEasingArray[]
 */
void setEasingTypeForMultipleServos(uint_fast8_t aNumberOfServos, uint_fast8_t aEasingType) {
    for (uint_fast8_t tServoIndex = 0; tServoIndex <= aNumberOfServos; ++tServoIndex) {
        if (ServoEasing::ServoEasingArray[tServoIndex] != nullptr) {
            ServoEasing::ServoEasingArray[tServoIndex]->mEasingType = aEasingType;
        }
    }
}
#endif

void setEaseToForAllServosSynchronizeAndStartInterrupt() {
    setEaseToForAllServos();
    synchronizeAllServosAndStartInterrupt();
}

void setEaseToForAllServosSynchronizeAndStartInterrupt(uint_fast16_t aDegreesPerSecond) {
    setEaseToForAllServos(aDegreesPerSecond);
    synchronizeAllServosAndStartInterrupt();
}

/**
 * Synchronize and blocking wait until all servos are stopped
 * Take the longer duration in order to move all servos synchronously
 */
void setEaseToForAllServosSynchronizeAndWaitForAllServosToStop() {
    setEaseToForAllServos();
    synchronizeAllServosStartAndWaitForAllServosToStop();
}

void setEaseToForAllServosSynchronizeAndWaitForAllServosToStop(uint_fast16_t aDegreesPerSecond) {
    setEaseToForAllServos(aDegreesPerSecond);
    synchronizeAllServosStartAndWaitForAllServosToStop();
}

void synchronizeAndEaseToArrayPositions() {
    setEaseToForAllServos();
    synchronizeAllServosStartAndWaitForAllServosToStop();
}

void synchronizeAndEaseToArrayPositions(uint_fast16_t aDegreesPerSecond) {
    setEaseT


Classes

Request → AnyRef → Any

  final  def wait(): Unit

Definition Classes

AnyRef

Annotations

@throws(classOf[java.lang.InterruptedException])

  final  def wait(arg0: Long, arg1: Int): Unit

Definition Classes

AnyRef

Annotations

@throws(classOf[java.lang.InterruptedException])

  final  def <span class


ͳ˵С

	// IDM_ABOUTBOX ϵͳΧڡ
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		BOOL bNameValid;
		CString strAboutMenu;
		bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
		ASSERT(bNameValid);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// ô˶ԻͼꡣӦóڲǶԻʱܽԶ
	//  ִд˲
	SetIcon(m_hIcon, TRUE);			// ôͼ
	SetIcon(m_hIcon, FALSE);		// Сͼ

	// TODO: ڴӶĳʼ

	// бʼ
	m_list.InsertColumn(0,_T("Hook"));
	m_list.SetColumnWidth(0,250);

	return TRUE;  // ǽõؼ򷵻 TRUE
}

void CHookWindowDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialogEx::OnSysCommand(nID, lParam);
	}
}

// ԻСťҪĴ
//  Ƹͼꡣʹĵ/ͼģ͵ MFC Ӧó
//  ⽫ɿԶɡ

void CHookWindowDlg::OnPaint()
{
	if (IsIconic())
	{
		CPaintDC dc(this); // ڻƵ豸

		SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

		// ʹͼڹо
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// ͼ
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialogEx::OnPaint();
	}
}

//û϶Сʱϵͳô˺ȡù
//ʾ
HCURSOR CHookWindowDlg::OnQueryDragIcon()
{
	return static_cast<HCURSOR>(m_hIcon);
}

// ϢӦ
LRESULT CHookWindowDlg::OnLogHookWindows(WPARAM wParam,LPARAM lParam)
{
	static CString str;
	static PMSLLHOOKSTRUCT mouseHookStruct;

	if (wParam)
	{
		TCHAR* str = (TCHAR*)wParam;
		CString msg;
		msg.Format(_T("%s"),str);
		m_list.InsertItem(m_list.GetItemCount(),msg);
		m_list.EnsureVisible(m_list.GetItemCount()-1,FALSE);
	}

	if (lParam)
	{
		HWND hwnd = (HWND)lParam;
		TCHAR title[MAX_PATH];
		::GetWindowText(hwnd,title,MAX_PATH);
		m_list.InsertItem(m_list.GetItemCount(),title);
		m_list.EnsureVisible(m_list.GetItemCount()-1,FALSE);
	}

	return 1;
}

HINSTANCE g_hinstDll = NULL;
//
// ʼ HOOK
//
void CHookWindowDlg::OnBnClickedButtonStart()
{
	// TODO: ڴӿؼ֪ͨ

	g_hinstDll = LoadLibrary(_T("HookDll.dll"));
	if ( NULL == g_hinstDll)
	{
		AfxMessageBox(_T(" HookDll.dll ʧ"));
	}

	typedef BOOL (CA


, C=4406, D=63.

Original writeup
(https://github.com/0ssigeno/Writeups/blob/master/de1CTF2020/nlfsr/writeup.md).#### Description:
Shoutout to those people who think that base64 is proper encryption

#### main.py
```python
from Crypto.Util.number import long_to_bytes, bytes_to_long
from gmpy2 import mpz, to_binary
#from secret import flag, key

ALPHABET = bytearray(b"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ#")

def base_n_encode(bytes_in, base):
	return mpz(bytes_to_long(bytes_in)).digits(base).upper().encode()

def base_n_decode(bytes_in, base):
	bytes_out = to_binary(mpz(bytes_in, base=base))[:1:-1]
	return bytes_out

def encrypt(bytes_in, key):
	out = bytes_in
	for i in key:
		print(i)
		out = base_n_encode(out, ALPHABET.index(i))
	return out

def decrypt(bytes_in, key):
	out = bytes_in
	for i in key:
		out = base_n_decode(out, ALPHABET.index(i))
	return out

"""
flag_enc = encrypt(flag, key)
f = open("flag_enc", "wb")
f.write(flag_enc)
f.close()
"""
```

#### flag_enc
The file can be found in the authors' repository:
[`flag_enc`](https://github.com/sigpwny/UIUCTF-2021-Public/blob/master/crypto/back_to_basics/public/flag_enc)

----

Let's look at the provided script:

As first step the alphabet of the key is defined:
```python
ALPHABET = bytearray(b"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ#")
```

`base_n_encode` reads the bytes of the given string as one big integer and
expresses it in the given base.
```python
def base_n_encode(bytes_in, base):
	return mpz(bytes_to_long(bytes_in)).digits(base).upper().encode()
```

`base_n_decode` reads the string as string-representation of a big integer in
the given base and returns the binary representation of this integer.
```python
def base_n_decode(bytes_in, base):
	bytes_out = to_binary(mpz(bytes_in, base=base))[:1:-1]
	return bytes_out
```

`encrypt` takes each char of the key and uses it as base for `base_n_encode`.
For getting an integer base, the char is searched in the above alphabet and
the position is used as base.
```python
def encrypt(bytes_in, key):
	out = bytes_in
	for i in key:
		print(i)
		out = base_n_encode(out, ALPHABET.index(i))
	return out
```

`decrypt` takes each char of the key and uses in the same way as in `encode`
for decoding the string with `base_n_decode`.
```python
def decrypt(bytes_in, key):
	out = bytes_in
	for i in key:
		out = base_n_decode(out, ALPHABET.index(i))
	return out
```

Finally, there is a comment, which explains, how `flag_enc` was created:
```python
flag_enc = encrypt(flag, key)
f = open("flag_enc", "wb")
f.write(flag_enc)
f.close()
```

----

At the start some considerations:
- `0` and `1` cannot be part of the string, as their indices in the alphabet (`0` & `1`) are no bases
- The base of the encrypted text will always be greater than each char in the text, as all characters in a string with base `b` are from inte


,.fc-event .fc-resizer,.fc-highlight-container,.fc-highlight-skeleton,.fc-mirror-container,.fc-mirror-skeleton{display:none}.fc tbody .fc-row,.fc-time-grid{min-height:0!important}.fc-time-grid .fc-event.fc-not-end:after,.fc-time-grid .fc-event.fc-not-start:before{content:"..."}.fc{max-width:100%!important}.fc-event{background:#fff!important;color:#000!important;page-break-inside:avoid}.fc hr,.fc tbody,.fc td,.fc th,.fc thead,.fc-row{border-color:#ccc!important;background:#fff!important}.fc tbody .fc-row{height:auto!important}.fc tbody .fc-row .fc-content-skeleton{position:static;padding-bottom:0!important}.fc tbody .fc-row .fc-content-skeleton tbody tr:last-child td{padding-bottom:1em}.fc tbody .fc-row .fc-content-skeleton table{height:1em}.fc-more,.fc-more-cell{display:none!important}.fc tr.fc-limited{display:table-row!important}.fc td.fc-limited{display:table-cell!important}.fc-popover,.fc-timeGrid-view .fc-axis{display:none}.fc-slats,.fc-time-grid hr{display:none!important}.fc button,.fc-button-group,.fc-time-grid .fc-event .fc-time span{display:none}.fc-time-grid .fc-content-skeleton{position:static}.fc-time-grid .fc-content-skeleton table{height:4em}.fc-time-grid .fc-event-container{margin:0!important}.fc-time-grid .fc-event{position:static!important;margin:3px 2px!important}.fc-time-grid .fc-event.fc-not-end{border-bottom-width:1px!important}.fc-time-grid .fc-event.fc-not-start{border-top-width:1px!important}.fc-time-grid .fc-event .fc-time{white-space:normal!important}.fc-time-grid .fc-event .fc-time:after{content:attr(data-full)}.fc-day-grid-container,.fc-scroller,.fc-time-grid-container{overflow:visible!important;height:auto!important}.fc-row{border:0!important;margin:0!important}}@charset "UTF-8";.swal2-popup.swal2-toast{flex-direction:row;align-items:center;width:auto;padding:.75rem .25rem;overflow-y:hidden;box-shadow:0 .25rem .75rem rgba(0,0,0,.1)}.swal2-popup.swal2-toast .swal2-header{flex-direction:row}.swal2-popup.swal2-toast .swal2-title{flex-grow:1;justify-content:flex-start;margin:0 .6em;font-size:.875rem}.swal2-popup.swal2-toast .swal2-footer{margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-popup.swal2-toast .swal2-close{position:static;width:.8em;height:.8em;line-height:.8}.swal2-popup.swal2-toast .swal2-content{justify-content:flex-start;font-size:.875rem}.swal2-popup.swal2-toast .swal2-icon{width:2em;min-width:2em;height:2em;margin:0}.swal2-popup.swal2-toast .swal2-icon::before{display:flex;align-


# Đệ quy
def cal_sum(lst):
    if not lst: # tương đương if len(lst) == 0:
            return 0
    else:
            return lst[0] + cal_sum(lst[1:])

print(cal_sum([1, 2, 3, 4]))
print(cal_sum([1, 2, 3, 4, 5]))

# Đệ quy theo Python
def cal_sum(lst):
    return 0 if not lst else lst[0] + cal_sum(lst[1:])

print(cal_sum([1, 2, 3]))

# Có thể sử dụng packing argument
def cal_sum(lst):
    idx0, *r = lst # idx0, r = lst[0], lst[1:]
    return idx0 if not r else idx0 + cal_sum(r)

print(cal_sum(['a','b','c']))


ing character.
Example:
Input String: "abcdeapapqarr"
Expected Output: 'a'
Since 'a' has appeared four times in the string which happens to be the highest frequency character, the answer would be 'a'.
If there are two characters in the input string with the same frequency, return the character which comes first.

Consider:
Assume all the characters in the given string to be in lowercase always.

Input Format:
The first and only line of input contains a string without any leading and trailing spaces.

Output Format:
The only line of output prints the updated string.
Note: You are not required to print anything explicitly. It has already been taken care of.

Constraints:
0 <= N <= 10^6
Where N is the length of the input string.
Time Limit: 1 second

Sample Input 1:
abdefgbabfba
Sample Output 1:
b

Sample Input 2:
xy
Sample Output 2:
x
*/

// highest occurring character in the String.
public class HighestOccuringCharacter {

	public static char highestOccuringCharacter(String inputString) {
		// Write your code here
        int count=0,idx=0;
        for (int i=0;i<inputString.length();i++)
        {
            char ch=inputString.charAt(i);
            int charcount=1;
            for (int j=i+1;j<inputString.length();j++)
            {
                if (ch == inputString.charAt(j))
                {
                    charcount++;
                }
            }

            if (charcount > count)
            {
                count=charcount;
                idx=i;
            }
        }
        //System.out.println(inputString.charAt(idx));
        return inputString.charAt(idx);

	}
}
/*
Given three values - Start Fahrenheit Value (S), End Fahrenheit value (E) and Step Size (W), you need to convert all Fahrenheit values from Start to End at the gap of W, into
their corresponding Celsius values and print the table.

Input Format :
3 integers - S, E and W respectively

Output Format :
Fahrenheit to Celsius conversion table. One line for every Fahrenheit and Celsius Fahrenheit value.
Fahrenheit value and its corresponding Celsius value should be separate by tab ("\t")

Constraints :
0 <= S <= 1000
0 <= E <= 1000
0 <= W <= 1000

Sample Input 1:
0
100
20
Sample Output 1:
0   -17
20  -6
40  4
60  15
80  26
100 37

Sample Input 2:
120
200
40
Sample Output 2:
120 48
160 71
200 93

Explanation for Sample Output 2 :
Start value is 120, end value is 200 and step size is 40. Therefore, the values we need to convert are 120, 120 + 40 = 160, and 160 + 40 = 200.
The formula for converting Fahrenheit to Celsius is:
Celsius Value = (5/9)*(Fahrenheit Value - 32)
Plugging 120 into the formula, the celsius value will be (5 / 9)*(120 - 32) => (5 / 9) * 88 => (5 * 88) / 9 => 440 / 9 => 48.88
But we'll only print 48 because we are only interested in the integral part of the value.
*/

import java.util.*;
public TempConvTable {
	public static void printFahrenheitTable(int start, int end, int step) {
		/* Don't write main().
		 * Don't read input, it is passed as function argument.
		 * Print the specified output in required format.
		 * Taking input is handled automatically.
		 */
        for (int i=start;i<=end;i=i+step)
        {
            double cel = (5*(i-32))/9;
            System.out.println(i + " " + (int)cel);
        }

	}
}
/*
You are given an integer array/list(ARR) of size N. It contains only 0s, 1s and 2s. Write a solution to sort this array/list in a


令执行能力，并评估其绕过安全防御的能力。

#### 🔍 关键发现

| 序号 | 发现内容 |
|------|----------|
| 1 | 功能定位：测试C2免杀及命令执行能力，评估其绕过安全防御的能力。 |
| 2 | 更新亮点：通过改变`command.txt`的内容并收集结果来测试不同的命令执行效果。 |
| 3 | 安全价值：有助于测试C2的隐蔽性和对目标系统的实际影响，为安全防御提供参考。 |
| 4 | 应用建议：可以用来测试C2在不同环境中的执行效果，以及绕过安全防御的能力。 |

#### 🛠 技术细节

> 技术架构：通过C2控制端下发命令，目标系统执行命令并将结果回传。

> 改进机制：通过修改`command.txt`中的命令来测试C2的命令执行能力，例如`ipconfig`和`tasklist`。

> 部署要求：需要在目标系统上部署C2客户端，并配置与C2控制端的通信。

#### 🎯 受影响组件

```
• C2客户端
• C2服务端
• 命令执行模块
```

#### ⚡ 价值评估

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

本次更新通过变更命令，测试C2的命令执行效果和隐蔽性，对于评估C2的实战价值有一定参考意义。
</details>

---

### ThreatFox-IOC-IPs - ThreatFox IP黑名单更新

#### 📌 仓库信息

| 属性 | 详情 |
|------|------|
| 仓库名称 | [ThreatFox-IOC-IPs](https://github.com/elliotwutingfeng/ThreatFox-IOC-IPs) |
| 风险等级 | `LOW` |
| 安全类型 | `防护工具` |
| 更新类型 | `GENERAL_UPDATE` |

#### 📊 代码统计

- 分析提交数: **2**
- 变更文件数: **2**

#### 💡 分析概述

该仓库维护了来自ThreatFox的IP黑名单，每小时更新一次。本次更新增加了新的恶意IP地址。更新内容是简单的IP地址列表，用于阻止与C2服务器的通信。更新本身不包含代码逻辑或漏洞，仅为数据更新。由于是自动更新，价值在于及时性，帮助安全人员阻断恶意IP连接。没有发现已知的漏洞利用。

#### 🔍 关键发现

| 序号 | 发现内容 |
|------|----------|
| 1 | 功能定位：提供最新的恶意IP地址列表，用于安全防御 |
| 2 | 更新亮


llrx, %%g1, %%r%d\n", reg_rand_init, i);
!!#   }
!!#   for (i = 10; i < 32; i++) {
!!#      IJ_printf ("th", "        setx  0x%016llrx, %%g1, %%r%d\n", reg_rand_init, i);
!!#   }
!!#
!!#   IJ_set_rvar (data_rand_init, "32'hrrrrrrrr");
!!#   IJ_printf ("-", ".data\n");
!!#   for (i = 0; i < 128; i++) {
!!#     IJ_printf ("-", "	.word  0x%08rx,0x%08rx,0x%08rx,0x%08rx\n", data_rand_init, data_rand_init, data_rand_init, data_rand_init);
!!#     IJ_printf ("-", "	.word  0x%08rx,0x%08rx,0x%08rx,0x%08rx\n", data_rand_init, data_rand_init, data_rand_init, data_rand_init);
!!#   }
!!#
!!#   IJ_set_rvar (div_wt, "{3}");
!!#
!!# --finish
!!# ;
!!#
!!# --diag_ini
!!# #define NO_TRAPCHECK
!!# #include "enable_traps.h"
!!# #include "hboot.s"
!!#
!!# !SIMS: -non_shared
!!# !SIMS: +spis
!!#
!!# .text
!!# .global main
!!# .global th_main_0
!!# .global th_main_1
!!# .global th_main_2
!!# .global th_main_3
!!#
!!# main:
!!#
!!# 	th_fork(th_main)
!!#
!!# th_main_0:
!!# !<<IJ>>include "th0.s"
!!# 	nop
!!# 	nop
!!# 	nop
!!#         ta      T_GOOD_TRAP
!!#
!!# th_main_1:
!!# !<<IJ>>include "th1.s"
!!# 	nop
!!# 	nop
!!# 	nop
!!#         ta      T_GOOD_TRAP
!!#
!!# th_main_2:
!!# !<<IJ>>include "th2.s"
!!# 	nop
!!# 	nop
!!# 	nop
!!#         ta      T_GOOD_TRAP
!!#
!!# th_main_3:
!!# !<<IJ>>include "th3.s"
!!# 	nop
!!# 	nop
!!# 	nop
!!#         ta      T_GOOD_TRAP
!!#
!!# --diag_fini
!!#
!!# --grammar
!!#
!!# inst_block: inst_type
!!#             | inst_block inst_type
!!#             ;
!!#
!!# inst_type: stb_raw_div
!!# 	   | stb_raw_div_div
!!# 	   | br_div
!!#     	   | stb_raw_ld_div
!!# 	   | stb_raw_alu_div
!!# 	   | alu_burst
!!# 	   | div_burst
!!# 	   | T3_T0_idle_resum_intr
!!# 	   | T3_T1_idle_resum_intr
!!#  	   | T3_T2_idle_resum_intr
!!# 	   | T2_T0_idle_resum_intr
!!# 	   | T2_T1_idle_resum_intr
!!#  	   | T2_T3_idle_resum_intr
!!# 	   | T1_T0_idle_resum_intr
!!# 	   | T1_T2_idle_resum_intr
!!#  	   | T1_T3_idle_resum


var resultPromise = originalFetch.apply(this, arguments);
        	return new Promise((resolve, reject) => {
        		fetchData.activeRequests.splice(idx, 1);
        		fetchData.watchers.forEach(current => {
          	  current.update(fetchData.activeRequests);
          	});
        		resultPromise.then(resolve, reject);
        	});
        }
        fetch.fetchData = fetchData;
        fetch.original_fetch = originalFetch;
      }
    }
    </script>

</template><!doctype html>

<title>CodeMirror: Mathematica mode</title>
<meta charset="utf-8"/>
<link rel=stylesheet href="../../doc/docs.css">

<link rel=stylesheet href=../../lib/codemirror.css>

CodeMirror

Home

Manual

Code

Language modes

Mathematica

Mathematica mode

<textarea id="mathematicaCode">
(* example Mathematica code *)
(* Dualisiert wird anhand einer Polarität an einer
   Quadrik $x^t Q x = 0$ mit regulärer Matrix $Q$ (also
   mit $det(Q) \neq 0$), z.B. die Identitätsmatrix.
   $p$ ist eine Liste von Polynomen - ein Ideal. *)
dualize::"singular" = "Q must be regular: found Det[Q]==0.";
dualize[ Q_, p_ ] := Block[
    { m, n, xv, lv, uv, vars, polys, dual },
    If[Det[Q] == 0,
      Message[dualize::"singular"],
      m = Length[p];
      n = Length[Q] - 1;
      xv = Table[Subscript[x, i], {i, 0, n}];
      lv = Table[Subscript[l, i], {i, 1, m}];
      uv = Table[Subscript[u, i], {i, 0, n}];
      (* Konstruiere Ideal polys. *)
      If[m == 0,
        polys = Q.uv,
        polys = Join[p, Q.uv - Transpose[Outer[D, p, xv]].lv]
        ];
      (* Eliminiere die ersten n + 1 + m Variablen xv und lv
         aus dem Ideal polys. *)
      vars = Join[xv, lv];
      dual = GroebnerBasis[polys, uv, vars];
      (* Ersetze u mit x im Ergebnis. *)
      Replace


cursor: pointer;
  -moz-border-radius: 0 0 4px 4px;
  -webkit-border-bottom-left-radius: 4px;
  -webkit-border-bottom-right-radius: 4px;
  border-radius: 0 0 4px 4px;
  opacity: 0.5;
  -moz-opacity: 0.5;
}
.flotr-tab.selected {
  background: #ddd;
  opacity: 1;
  -moz-opacity: 1;
}
.flotr-tab:hover {
  background: #ccc;
}

/* Large */
.flotr-examples-large .flotr-example {
  width: 1360px;
  margin: 0px auto;
  position: relative;
}
.flotr-examples-large .flotr-example-editor .editor .render {
  margin-left: 0px;
  margin-right: 0px;
}
.flotr-examples-large .flotr-example-editor .controls {
  top: 0px;
}
.flotr-examples-large .flotr-example-editor .source {
  position: absolute;
  top: 0px;
  right: 0px;
}

/* Veritical Thumbs */

.flotr-examples-large.flotr-examples-collapsed .flotr-examples-reset,
.flotr-examples-medium.flotr-examples-collapsed .flotr-examples-reset {
  top: 16px;
}

.flotr-examples-large.flotr-examples-collapsed .flotr-examples-thumbs,
.flotr-examples-medium.flotr-examples-collapsed .flotr-examples-thumbs {
  position: fixed;
  width: 400px;
  left: 0px;
  top: 0px;
  overflow-y: auto;
  background: #fff;
}
.flotr-examples-large.flotr-examples-collapsed .flotr-examples-thumb,
.flotr-examples-medium.flotr-examples-collapsed .flotr-examples-thumb {
  display: block;
  float: center;
  margin: 10px auto;
}

.flotr-examples-large.flotr-examples-collapsed .flotr-examples-container,
.flotr-examples-medium.flotr-examples-collapsed .flotr-examples-container {
  margin-left: 400px;
}

/* Vertical Example */

.flotr-examples-small .flotr-example,
.flotr-examples-medium .flotr-example {
  width: 720px;
}
.flotr-examples-small .flotr-example-editor .source,
.flotr-examples-medium .flotr-example-editor .source {
  position: relative;
}
/*
 * jQuery UI Tabs 1.8.16
 *
 * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
 * Dual licensed under the MIT or GPL Version 2 licenses.
 * http://jquery.org/license
 *
 * http://docs.jquery.com/UI/Tabs#theming
 */
.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing


  	%ymm6,%ymm3,%ymm0 )

	vbroadcastss	 -2 * SIZE(BO), %ymm2
	vbroadcastss	 -1 * SIZE(BO), %ymm3
	VFMADD231PS_(  	%ymm8,%ymm2,%ymm0  )
	VFMADD231PS_(  	%ymm10,%ymm3,%ymm0 )

	vbroadcastss	  0 * SIZE(BO), %ymm2
	vbroadcastss	  1 * SIZE(BO), %ymm3
	VFMADD231PS_(  	%ymm12,%ymm2,%ymm0  )
	VFMADD231PS_(  	%ymm14,%ymm3,%ymm0 )

	addq	$ 6*SIZE, BO
	addq	$ 8*SIZE, AO
	decq	%rax
.endm

.macro SAVE8x6

	vbroadcastss	ALPHA, %ymm0

	vmulps	%ymm0 , %ymm4 , %ymm4
	vmulps	%ymm0 , %ymm6 , %ymm6
	vmulps	%ymm0 , %ymm8 , %ymm8
	vmulps	%ymm0 , %ymm10, %ymm10
	vmulps	%ymm0 , %ymm12, %ymm12
	vmulps	%ymm0 , %ymm14, %ymm14

#if !defined(TRMMKERNEL)

	vaddps 	        (CO1), %ymm4,%ymm4
	vaddps 	        (CO1, LDC), %ymm6,%ymm6
	vaddps 	        (CO1, LDC,2), %ymm8,%ymm8
	vaddps 	        (CO2), %ymm10,%ymm10
	vaddps 	        (CO2, LDC), %ymm12,%ymm12
	vaddps 	        (CO2, LDC,2), %ymm14,%ymm14

#endif

	vmovups	%ymm4 ,  	(CO1)
	vmovups	%ymm6 ,  	(CO1, LDC)
	vmovups	%ymm8 ,  	(CO1, LDC,2)
	vmovups	%ymm10,  	(CO2)
	vmovups	%ymm12,  	(CO2, LDC)
	vmovups	%ymm14,  	(CO2, LDC,2)

.endm

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

.macro KERNEL4x6_SUB
	vmovups 	-16 * SIZE(AO), %xmm0
	vbroadcastss	 -4 * SIZE(BO), %xmm2
	vbroadcastss	 -3 * SIZE(BO), %xmm3

	VFMADD231PS_(  	%xmm4,%xmm2,%xmm0 )
	VFMADD231PS_(  	%xmm6,%xmm3,%xmm0 )

	vbroadcastss	 -2 * SIZE(BO), %xmm2
	vbroadcastss	 -1 * SIZE(BO), %xmm3
	VFMADD231PS_(  	%xmm8,%xmm2,%xmm0  )
	VFMADD231PS_(  	%xmm10,%xmm3,%xmm0 )

	vbroadcastss	  0 * SIZE(BO), %xmm2
	vbroadcastss	  1 * SIZE(BO), %xmm3
	VFMADD231PS_(  	%xmm12,%xmm2,%xmm0  )
	VFMADD231PS_(  	%xmm14,%xmm3,%xmm0 )

	addq	$ 6*SIZE, BO
	addq	$ 4*SIZE, AO
	decq	%rax
.endm

.macro SAVE4x6

	vbroadcastss	ALPHA, %xmm0

	vmulps	%xmm0 , %xmm4 , %xmm4
	vmulps	%xmm0 , %xmm6 , %


         provider = "prisma-client-js"
         4 |             previewFeatures = [env("MY_PREVIEW_FEATURE")]
           |
    "#]];

    let expect_2 = expect![[r#"
        error: Expected a String value, but received functional value "env".
          -->  schema.prisma:4
           |
         3 |             provider = "prisma-client-js"
         4 |             previewFeatures = env("MY_PREVIEW_FEATURE")
           |
    "#]];

    expect_1.assert_eq(&datamodel::parse_schema(schema_1).map(drop).unwrap_err());
    expect_2.assert_eq(&datamodel::parse_schema(schema_2).map(drop).unwrap_err());
}

fn assert_mcf(schema: &str, expected_mcf: &str) {
    let config = parse_configuration(schema);
    let rendered = datamodel::json::mcf::generators_to_json(&config.generators);

    assert_eq_json(&rendered, expected_mcf);
}

fn assert_eq_json(a: &str, b: &str) {
    let json_a: serde_json::Value = serde_json::from_str(a).expect("The String a was not valid JSON.");
    let json_b: serde_json::Value = serde_json::from_str(b).expect("The String b was not valid JSON.");

    assert_eq!(json_a, json_b);
}
pub mod host;
pub mod localtab;
pub mod window;
// Copyright (c) 2017 <NAME>
//
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and associated documentation files (the "Software"), to deal
// in the Software without restriction, including without limitation the rights
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
// copies of the Software, and to permit persons to whom the Software is
// furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.

use std::collections::BTreeMap;
use std::fmt;
use std::io::Write as IoWrite;
use std::io::{self, Read};
use std::path::{Path, PathBuf};

use serde::{Deserialize, Serialize};
use tempfile;

use crate::error::Error;

use super::traits::Task;
use crate::detect::Detected;

use crate::util::{progress_dummy, Arguments, Process, Retry};

/// A task to create a directory.
#[derive(
    Serialize, Deserialize, Ord, PartialOrd, Eq, PartialEq, Hash, Clone,
)]
pub struct BatchScript {
    /// Contents of the batch script. This is first written to a temporary file
    /// and then executed.
    contents: String,

    /// Optional working directory to spawn the process in. If `None`, uses the
    /// working directory of the parent process (i.e., the


 {
      String prefix = "https://${u.host}";
      String proxiedUri = url;
      if (url.startsWith(prefix)) {
        proxiedUri = _vpnPrefix[u.host]! + url.substring(prefix.length);
      }

      return proxiedUri;
    } else {
      return null;
    }
  }

  /// Check if we are able to connect to the service directly (without WebVPN).
  /// This method uses a low-timeout dio to reduce wait time.
  static Future<bool> tryDirect() async {
    final dioOptions = BaseOptions(
        receiveDataWhenStatusError: true,
        connectTimeout: const Duration(seconds: 1),
        receiveTimeout: const Duration(seconds: 1),
        sendTimeout: const Duration(seconds: 1));
    // A low-timeout dio
    Dio fastDio = DioUtils.newDioWithProxy(dioOptions);

    try {
      await fastDio.get(DIRECT_CONNECT_TEST_URL);
      // Request succeeds
      return true;
    } on DioException catch (e) {
      // Under these circumstances, at least we can find the server successfully, so we can assume that direct request does work.
      if (e.type == DioExceptionType.badResponse ||
          e.type == DioExceptionType.badCertificate) {
        return true;
      }

      // We cannot even connect to the server
      if (e.type == DioExceptionType.connectionTimeout ||
          e.type == DioExceptionType.connectionError) {
        debugPrint(
            "Direct connection timeout, trying to connect through proxy: $e");
        return false;
      }

      // Misc errors, not related to connectivity to danta server, just leave a log and return `false`
      debugPrint("Direct connection failed due to an unexpected reason: $e");
      return false;
    } catch (e) {
      debugPrint("Unknown problem when trying direct access: $e");
      return false;
    }
  }

  /// Priorly validate the response to see if it indicates a successful request.
  ///
  /// Throws exception if the response is invalid.
  Response<dynamic> validateResponse(Response<dynamic> response) {
    if (response.realUri.toString().startsWith(WEBVPN_REDIRECTED_TO_LOGIN_PREFIX)) {
      throw WebvpnRequestException(
          "Request through WebVPN failed: not logged in");
    }
    if (response.requestOptions.responseType == ResponseType.json) {
      if (response.data is! Map && response.data is! List) {
        // If the response is not a JSON object or array, try to decode it
        jsonDecode(response.data.toString());
      }
    }
    return response;
  }

  /// Handle a request through WebVPN
  Future<void> handleWebVPNRequest(
      RequestOptions options, RequestInterceptorHandler handler) async {
    final translatedUrl = tryTranslateUrlToWebVPN(options.path);
    options.path = translatedUrl ?? options.path;
    options.extra[EXTRA_ROUTE_TYPE] =
        translatedUrl != null ? "webvpn_proxied" : "webvpn_direct";

    try {
      debugPrint(
          "Requesting through WebVPN: ${options.method} ${options.path}");
      final proxiedResponse = await FudanSession.request(
          options, validateResponse,
          manualLoginUrl: WEBVPN_LOGIN_URL);
      return handler.resolve(proxiedResponse, true);
    } on DioException catch (e) {
      return handler.reject(e, true);
    }
  }

  @override
  void onRequest(
      RequestOptions options, RequestInterceptorHandler handler) async {
    options.extra[EXTRA_ORIGINAL_URL] = options.path;
    // Try with direct connect if we haven't even tried
    if (_canConnectDirectly == null) {
      // The first request submits the job to evaluate if direct connection works and waits for result.
      // Other concurrent requests just simply wait for the result.
      tryDirectSession ??= tryDirect();


entArgs e)
        {
            ExcelEngine excelEngine = new ExcelEngine();
            IApplication application = excelEngine.Excel;

            application.DefaultVersion = ExcelVersion.Excel2013;

            // Initializing Workbook
            string resourcePath = string.Empty;
			#if COMMONSB
			resourcePath = "SampleBrowser.Samples.XlsIO.Samples.Template.ChartData.xlsx";
			#else
			resourcePath = "SampleBrowser.XlsIO.Samples.Template.ChartData.xlsx";
			#endif
            Assembly assembly = typeof(App).GetTypeInfo().Assembly;
            Stream fileStream = assembly.GetManifestResourceStream(resourcePath);

            IWorkbook workbook = application.Workbooks.Open(fileStream);

            //The first worksheet object in the worksheets collection is accessed.
            IWorksheet sheet = workbook.Worksheets[0];

            // Generate Chart
            IChartShape chart = sheet.Charts.Add();

            chart.DataRange = sheet["A16:E26"];
            chart.ChartTitle = sheet["A15"].Text;
            chart.HasLegend = false;
            chart.TopRow = 3;
            chart.LeftColumn = 1;
            chart.RightColumn = 6;
            chart.BottomRow = 15;

            workbook.Version = ExcelVersion.Excel2013;

            MemoryStream stream = new MemoryStream();
            workbook.SaveAs(stream);
            workbook.Close();
            excelEngine.Dispose();

            if (Device.RuntimePlatform == Device.UWP)
            {
                Xamarin.Forms.DependencyService.Get<ISaveWindowsPhone>().Save("Charts.xlsx", "application/msexcel", stream);
            }
            else
            {
                Xamarin.Forms.DependencyService.Get<ISave>().Save("Charts.xlsx", "application/msexcel", stream);
            }
        }
    }
}


local sqrt,cos,sin = math.sqrt,math.cos,math.sin

DELAY_SCALE = 140
ANIM_SPEED = 0.08
BLOCKS = TexturePack.new("gfx/Blocks.txt", "gfx/Blocks.png", true)
FX = TexturePack.new("gfx/FX.txt", "gfx/FX.png", true)

GameScene = Core.class(Sprite)

function GameScene:init()

	--local data = require("data/Level_1")
	local data = {}
	data.cells = {}

	local w,h = 6,6--math.random(6,8),math.random(10,15)
	for y = 1,h do
		data.cells[y] = {}
		for x = 1,w do
			data.cells[y][x] = math.random() < 0.15 and 1 or 0
		end
	end

	self.board = Board.new{tileW = TILE, offsetX = 8, ax = ANCHOR_X, ay = ANCHOR_Y}
	self.board:load(data)
	self.board:setPosition((720 - self.board:getWidth()) / 2, (1280 - self.board:getHeight()) / 2)
	self:addChild(self.board)

	self.dist = 0
	self.sx = 0
	self.sy = 0
	self.maxDist = (TILE+self.board.offsetX)^2+(TILE+self.board.offsetY)^2
	self.activeColor = ""
	self.activeLine = nil
	self.activeTile = nil
	self.prevTile = nil
	self.connections = {}
	self.board:spawn()

	self:addEventListener("touchesBegin", self.touchesBegin, self)
	self:addEventListener("touchesMove", self.touchesMove, self)
	self:addEventListener("touchesEnd", self.touchesEnd, self)
end
--
function GameScene:pushConnection(tx,ty,tile)
	local selector = Bitmap.new(BLOCKS:getTextureRegion("selector.png"))
	selector:setAnchorPoint(ANCHOR_X,ANCHOR_Y)
	self.board:add(tx,ty,SELECT_LEVEL, selector)

	local line = Pixel.new(BLOCKS:getTextureRegion("line.png"), 0,16)
	line:setNinePatch(4)
	line:setAnchorPoint(0,0.5)
	self.board:add(tx,ty,LINE_LEVEL, line, true)

	tile.isConnected = true
	tile:setSleep(false)
	self.connections[#self.connections+1] = {
		tx = tx,
		ty = ty,
		line = line,
		selector = selector,
		tile = tile,
	}

	self.activeLine = line
	self.activeTile = tile
end
--
function GameScene:popConnection()
	local n = #self.connections
	local removed = table.remove(self.connections, n)
	removed.selector:removeFromParent()
	removed.line:removeFromParent()
	removed.tile.isConnected = false
	removed.tile:setSleep(true)

	local last = self.connections[n-1]
	if last then
		self.prevTile = nil
		if n-2 > 0 then
			self.prevTile = self.connections[n-2].tile
		end
		self.activeTile = last.tile
		self.activeLine = last.line
	end

	return removed
end
--
function Gam


(mut iter) = frame.expr.expr_data {
        if let (Some(expr), None) = (iter.next(), iter.next()) {
            Some(StackFrame::new(expr,
                                 frame.env.clone(),
                                 vec![]))
        } else {
            panic!("Invalid number of arguments provided to 'prompt'. Expected: 1")
        }
    } else {
        panic!("Unexpected non-list found while evaluating 'prompt'")
    }
    }

pub fn call_with_control(accumulator: &mut Option<Expr>, frame: Option<StackFrame>, stack: &mut CallStack) -> Option<StackFrame> {
    let env = frame.as_ref().unwrap().env.clone();
    eval_arguments(accumulator,
                   frame,
                   stack,
                   |_, mut iter, stack| {
                       let mut continuation_stack: Vec<StackFrame> = vec![];
                       while let Some(frame) = stack.pop_frame() {
                           if frame.is_prompt {
                               break;
                           }

                           continuation_stack.push(frame);
                       }

                       let continuation_expr = ExprData::Continuation(CallStack::from(continuation_stack.into_iter().rev().collect())).to_expr();

                       if let (Some(lambda_expr), None) = (iter.next(), iter.next()) {
                           let continuation_call = ExprData::List(vec![lambda_expr, continuation_expr].into_iter()).to_expr();

                           Some(StackFrame::new(continuation_call,
                                                env,
                                                vec![]))
                       } else {
                           panic!("Invalid number of arguments provided to call/control")
                       }
                   })
}

<gh_stars>0
use actix_web::HttpRequest;
use actix_session::UserSession;

use crate::templates::FlashMessage;
use crate::error::Error;

/// `FlashMessages` implements a one-time-message (hence "Flash") that is useful
/// for old-school HTML flows that need to display messages in a standardized way
/// across pages.
///
/// This could potentially do less serialization, but it's fine for now.
/// TODO: Look at whether this can be done with just &str rather than String.
pub trait FlashMessages {
    /// Adds a flash message to the stack.
    fn flash(&self, title: &str, message: &str) -> Result<(), Error>;

    /// Internally used; loads flash messages for template use and removes the existing
    /// stack.
    fn get_flash_messages(&self) -> Result<Vec<FlashMessage>, Error>;
}

impl FlashMessages for HttpRequest {
    fn flash(&self, title: &str, message: &str) -> Result<(), Error> {
        let session = self.get_session();

        let mut messages: Vec<FlashMessage> = match session.get("flsh")? {
            Some(messages) => messages,
            None => Vec::new()
        };

        messages.push(FlashMessage {
            title: title.to_string(),
            message: message.to_string()
        });
        session.set("flsh", messages)?;

        Ok(())
    }


p>

W

IOS Version of this PDSN.

Enumeration of:

TIA-878-ballot

TIA-878-1

TIA-878-a

TIA-878-legacy

TIA-878-a

2.0

BatchTablePDSNAdminStatus

int(0:1)

W

Administrative status of this PDSN. 0- UP 1-DOWN.

0

2.0

PDSNType

string

W

Indicates the PDSN type for this batch.

Enumeration of:

OneX

HRPDRev0

HRPDRevA

HRPDRevA

2.0

FAPService.{i}.CellConfig.CDMA2000.OneX.PCFPDSN.{i}.

object(0:)

W

PCFPDSN Object configured for 1x.
CellConfig.CDMA2000.OneX.BatchPCFPDSN.{i}. table should be
used to configure PDSN details.


;

    out[12] = a00 * x + a10 * y + a20 * z + a[12];
    out[13] = a01 * x + a11 * y + a21 * z + a[13];
    out[14] = a02 * x + a12 * y + a22 * z + a[14];
    out[15] = a03 * x + a13 * y + a23 * z + a[15];

    return out;
  }

  /**
   * Rotates a m4 by the given angle around the given axis
   *
   * @param {m4} a the matrix to rotate
   * @param {Number} rad the angle to rotate the matrix by
   * @param {v3} axis the axis to rotate around
   * @returns {m4} out
   */
  public static rotate(a : Float32Array, rad : number, axis : Float32Array) : Float32Array {
    var out = m4.identity();

    var x = axis[0], y = axis[1], z = axis[2],
      len = Math.sqrt(x * x + y * y + z * z),
      s, c, t,
      a00, a01, a02, a03,
      a10, a11, a12, a13,
      a20, a21, a22, a23,
      b00, b01, b02,
      b10, b11, b12,
      b20, b21, b22;

    if (Math.abs(len) < m4.EPSILON) { return a; }

    len = 1 / len;
    x *= len;
    y *= len;
    z *= len;

    s = Math.sin(rad);
    c = Math.cos(rad);
    t = 1 - c;

    a00 = a[0]; a01 = a[1]; a02 = a[2]; a03 = a[3];
    a10 = a[4]; a11 = a[5]; a12 = a[6]; a13 = a[7];
    a20 = a[8]; a21 = a[9]; a22 = a[10]; a23 = a[11];

    // Construct the elements of the rotation matrix
    b00 = x * x * t + c; b01 = y * x * t + z * s; b02 = z * x * t - y * s;
    b10 = x * y * t - z * s; b11 = y * y * t + c; b12 = z * y * t + x * s;
    b20 = x * z * t + y * s; b21 = y * z * t - x * s; b22 = z * z * t + c;

    // Perform rotation-specific matrix multiplication
    out[0] = a00 * b00 + a10 * b01 + a20 * b02;
    out[1] = a01 * b00 + a11 * b01 + a21 * b02;
    out[2] = a02 * b00 + a12 * b01 + a22 * b02;
    out[3] = a03 * b00 + a13 * b01 + a23 * b02;
    out[4] = a00 * b10 + a10 * b11 + a20 * b12;
    out[5] = a01 * b10 + a11 * b11 + a21 * b12;
    out[6] = a02 * b10 + a12 * b11 + a22 * b12;
    out[7] = a03 * b10 + a13 * b11 + a23 * b12;
    out[8] = a00 * b20 + a10 * b21 + a20 * b22;
    out[9] = a01 * b20 + a11 * b21 + a21 * b22;
    out[10] = a02 * b20 + a12 * b21 + a22 * b22;
    out[11] = a03 * b20 + a13 * b21 + a23 * b22;

    if (a !== out) { // If the source and destination differ, copy the unchanged last row
      out[12] = a[12];
      out[13] = a[13];
      out[14] = a[14];
      out[15] = a[15];
    }
    return out;
  }

  /**
   * Rotates a matrix by


s under `resource/debug/bin`.

##### 2.2.1 Build docker images on host

We have 2 docker images which should be built or loaded on your host, `wasm-toolchain` and `wasm-debug-server`. To build these 2 images, please enter the `WASM-Debug-Server/Docker` & `WASM-Toolchain/Docker`, then execute the `build_docker_image` script respectively.

Windows (powershell):

```batch
cd .\WASM-Toolchain\Docker
.\build_docker_image.bat
cd .\WASM-Debug-Server\Docker
.\build_docker_image.bat
```

Linux:

```shell
cd ./WASM-Toolchain/Docker
./build_docker_image.sh
cd ./WASM-Debug-Server/Docker
./build_docker_image.sh
```

##### 2.2.2 After building, you can find `wasm-toolchain` and `wasm-debug-server` docker images on your local

![docker-images](./Media/docker_images.png)

##### 2.2.3 If building docker images fail during the process

Sometimes building the Docker images may fail due to bad network conditions. If the `wasm-toolchain` and `wasm-debug-server` images do not exist after building, please build them manually. Fix the proxy setting if needed and execute the following command to build docker images.

![docker-engine-config](./Media/docker_config.jpg)

> Note: please correctly replace example proxy address with your own before you run manually.

```xml
$ cd .\docker_images\wasm-debug-server
$ docker build --no-cache --build-arg http_proxy=http://proxy.example.com:1234
--build-arg https_proxy=http://proxy.example.com:1234 -t wasm-debug-server:1.0 .
```

```xml
$ cd .\docker_images\wasm-toolchain
$ docker build --no-cache --build-arg http_proxy=http://proxy.example.com:1234
--build-arg https_proxy=http://proxy.example.com:1234 -t wasm-toolchain:1.0 .
```

##### 2.2.4 If you encounter the problem `failed to solve with frontend dockerfile.v0: failed to create LLB definition`, please config your docker desktop

![docker-engine-config](./Media/docker_engine_config.png)

##### 2.2.5 Points To Remember

- Make sure that the `wasm-toolchain:1.0` and `wasm-debug-server:1.0` docker images are both successfully built before using `WAMR IDE`, otherwise `Build`, `Run` and `Debug` will not work.

##### 2.2.6 Generate wamride extension package file

`wamride-1.0.0.vsix` can be packaged by [`npm vsce`](https://code.visualstudio.com/api/working-with-extensions/publishing-extension).

```shell
npm install -g vsce
cd VSCode-Extension
rm -rf node_modules
npm install
vsce package
```

##### 2.2.7 Enable VS Code debugging feature

By default, when you build .vsix locally, the debugging feature is off. Suppose you want to enable the source debugging feature. In that case, you could download `lldb` binaries from our GitHub release (for example, `wamr-lldb-1.1.2-x86_64-ubuntu-20.04.tar.gz`), decompress and put every subdirectory and file to the installed directory of your VS Code extension.

For example, let's say you are on an Ubuntu 20.04 machine. You first download and decompress `wamr-lldb-1.1.2-x86_64-ubuntu-20.04.tar.gz`, and you will get a `wamr-lldb` folder (or `inst` folder in our earlier release). Then, you can simply copy the files and directory inside that folder to the relative path `resource/debug/linux/` under your VS Code extension installation directory.

Example commands on an Ubuntu 20.04 machine:

```shell
# decompress .tar.gz file and get the folder
$ ls wamr-lldb
bin  lib  package.json  syntaxes
# copy everything to the vscode extension installation path(in this case, it's /home


"; }

.fa-up-from-dotted-line {
  --fa: "\e456";
  --fa--fa: "\e456\e456"; }

.fa-eye-low-vision {
  --fa: "\f2a8";
  --fa--fa: "\f2a8\f2a8"; }

.fa-low-vision {
  --fa: "\f2a8";
  --fa--fa: "\f2a8\f2a8"; }

.fa-traffic-light-go {
  --fa: "\f638";
  --fa--fa: "\f638\f638"; }

.fa-face-exhaling {
  --fa: "\e480";
  --fa--fa: "\e480\e480"; }

.fa-sensor-fire {
  --fa: "\e02a";
  --fa--fa: "\e02a\e02a"; }

.fa-user-unlock {
  --fa: "\e058";
  --fa--fa: "\e058\e058"; }

.fa-hexagon-divide {
  --fa: "\e1ad";
  --fa--fa: "\e1ad\e1ad"; }

.fa-00 {
  --fa: "\e467";
  --fa--fa: "\e467\e467"; }

.fa-crow {
  --fa: "\f520";
  --fa--fa: "\f520\f520"; }

.fa-cassette-betamax {
  --fa: "\f8a4";
  --fa--fa: "\f8a4\f8a4"; }

.fa-betamax {
  --fa: "\f8a4";
  --fa--fa: "\f8a4\f8a4"; }

.fa-sailboat {
  --fa: "\e445";
  --fa--fa: "\e445\e445"; }

.fa-window-restore {
  --fa: "\f2d2";
  --fa--fa: "\f2d2\f2d2"; }

.fa-nfc-magnifying-glass {
  --fa: "\e1f9";
  --fa--fa: "\e1f9\e1f9"; }

.fa-file-binary {
  --fa: "\e175";
  --fa--fa: "\e175\e175"; }

.fa-circle-v {
  --fa: "\e12a";
  --fa--fa: "\e12a\e12a"; }

.fa-square-plus {
  --fa: "\f0fe";
  --fa--fa: "\f0fe\f0fe"; }

.fa-plus-square {
  --fa: "\f0fe";
  --fa--fa: "\f0fe\f0fe"; }

.fa-bowl-scoops {
  --fa: "\e3df";
  --fa--fa: "\e3df\e3df"; }

.fa-mistletoe {
  --fa: "\f7b4";
  --fa--fa: "\f7b4\f7b4"; }

.fa-custard {
  --fa: "\e403";
  --fa--fa: "\e403\e403"; }

.fa-lacrosse-stick {
  --fa: "\e3b5";
  --fa--fa: "\e3b5\e3b5"; }

.fa-hockey-mask {
  --fa: "\f6ee";
  --fa--fa: "\f6ee\f6ee"; }

.fa-sunrise {
  --fa: "\f766";
  --fa--fa: "\f766\f766"; }

.fa-subtitles {
  --fa: "\e60f";
  --fa--fa: "\e60f\e60f"; }

.fa-panel-ews {
  --fa: "\e42e";
  --fa--fa: "\e42e\e42e"; }

.fa-torii-gate {
  --fa: "\f6


// -----------------------------------------------------------------------
// <copyright file="Scp0492Role.cs" company="Exiled Team">
// Copyright (c) Exiled Team. All rights reserved.
// Licensed under the CC BY-SA 3.0 license.
// </copyright>
// -----------------------------------------------------------------------

namespace Exiled.API.Features.Roles
{
    using PlayerRoles;
    using PlayerRoles.PlayableScps.HumeShield;
    using PlayerRoles.PlayableScps.Scp049;
    using PlayerRoles.PlayableScps.Scp049.Zombies;
    using PlayerRoles.Ragdolls;
    using PlayerRoles.Subroutines;

    /// <summary>
    /// Defines a role that represents SCP-049-2.
    /// </summary>
    public class Scp0492Role : FpcRole, ISubroutinedScpRole, IHumeShieldRole
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="Scp0492Role"/> class.
        /// </summary>
        /// <param name="baseRole">the base <see cref="ZombieRole"/>.</param>
        internal Scp0492Role(ZombieRole baseRole)
            : base(baseRole)
        {
            SubroutineModule = baseRole.SubroutineModule;
            HumeShieldModule = baseRole.HumeShieldModule;

            if (!SubroutineModule.TryGetSubroutine(out ZombieAttackAbility zombieAttackAbility))
                Log.Error("ZombieAttackAbility subroutine not found in Scp0492Role::ctor");

            AttackAbility = zombieAttackAbility;

            if (!SubroutineModule.TryGetSubroutine(out ZombieBloodlustAbility zombieBloodlustAbility))
                Log.Error("ZombieBloodlustAbility subroutine not found in Scp0492Role::ctor");

            BloodlustAbility = zombieBloodlustAbility;

            if (!SubroutineModule.TryGetSubroutine(out ZombieConsumeAbility zombieConsumeAbility492))
                Log.Error("ZombieConsumeAbility subroutine not found in Scp0492Role::ctor");

            ConsumeAbility = zombieConsumeAbility492;
        }

        /// <inheritdoc/>
        public override RoleTypeId Type { get; } = RoleTypeId.Scp0492;

        /// <inheritdoc/>
        public SubroutineManagerModule SubroutineModule { get; }

        /// <inheritdoc/>
        public HumeShieldModuleBase HumeShieldModule { get; }

        /// <summary>
        /// Gets SCP-049-2's <see cref="ZombieAttackAbility"/>.
        /// </summary>
        public ZombieAttackAbility AttackAbility { get; }

        /// <summary>
        /// Gets SCP-049-2's <see cref="ZombieBloodlustAbility"/>.
        /// </summary>
        public ZombieBloodlustAbility BloodlustAbility { get; }

        /// <summary>
        /// Gets SCP-049-2's <see cref="ZombieConsumeAbility"/>.
        /// </summary>
        public ZombieConsumeAbility ConsumeAbility { get; }

        /// <summary>
        /// Gets or sets the amount of times this SCP-049-2 has been resurrected.
        /// </summary>
        public int ResurrectNumber
        {
            get => Scp049ResurrectAbility.GetResurrectionsNumber(Owner.ReferenceHub);


fox span.cm-atom,.cm-s-shadowfox span.cm-attribute,.cm-s-shadowfox span.cm-builtin,.cm-s-shadowfox span.cm-error,.cm-s-shadowfox span.cm-keyword,.cm-s-shadowfox span.cm-quote{color:#FF7DE9}.cm-s-shadowfox span.cm-number,.cm-s-shadowfox span.cm-string,.cm-s-shadowfox span.cm-string-2{color:#6B89FF}.cm-s-shadowfox span.cm-hr,.cm-s-shadowfox span.cm-meta{color:#939393}.cm-s-shadowfox span.cm-header,.cm-s-shadowfox span.cm-qualifier,.cm-s-shadowfox span.cm-variable-2{color:#75BFFF}.cm-s-shadowfox span.cm-property{color:#86DE74}.cm-s-shadowfox span.cm-bracket,.cm-s-shadowfox span.cm-def,.cm-s-shadowfox span.cm-link:visited,.cm-s-shadowfox span.cm-tag{color:#75BFFF}.cm-s-shadowfox span.cm-variable{color:#B98EFF}.cm-s-shadowfox span.cm-variable-3{color:#d7d7db}.cm-s-shadowfox span.cm-link{color:#737373}.cm-s-shadowfox span.cm-operator{color:#b1b1b3}.cm-s-shadowfox span.cm-special{color:#d7d7db}.cm-s-shadowfox .CodeMirror-activeline-background{background:rgba(185,215,253,.15)}.cm-s-shadowfox .CodeMirror-matchingbracket{outline:rgba(255,255,255,.25) solid 1px;color:#fff!important}
/*# sourceMappingURL=bundle.css.map */
/*-----------------------------------*\
  #main.css
\*-----------------------------------*/

/**
 * copyright 2023 DuoDevs
 */

/*-----------------------------------*\
  #CUSTOM PROPERTY
\*-----------------------------------*/

:root {

  /**
   * COLORS
   */

  /* Background Color */
  --white: hsla(0, 0%, 100%, 1);
  --white-2: hsla(0, 0%, 99%, 1);
  --floral-white: hsla(50, 43%, 95%, 1);
  --apple-green: hsla(78, 100%, 35%, 1);
  --apple-green-alpha: hsla(78, 100%, 35%, 0.721);
  --gray: hsla(0, 0%, 49%, 1);
  --rich-black: hsla(188, 63%, 7%, 1);
  --azure-web: hsl(180, 19%, 85%);

  /* Text Color */
  --selective-yellow: hsla(43, 100%, 50%, 1);
  --black: hsla(0, 0%, 0%, 1);
  --sea-green: hsl(188, 63%, 7%);

  /* Border Color */
  --antiflash-white: hsla(0, 0%, 93%, 1);
  --antiflash-white-3: hsla(207, 21%, 92%, 1);
  --alice-blue: hsla(206, 35%, 92%, 1);
  --platinum: hsla(0, 0%, 87%, 1);
  --dim-gray: hsla(188, 8%, 37%, 1);
  --delft-blue: hsla(220, 46%, 25%, 1);

  /* Box Shadow */
  --shadow-1: 0 16px 32px 0 rgba(7, 28, 31, 0.1);
  --shadow-2: 0 1px 6px 0 rgba(54, 56, 61, 0.15);
  --shadow-3: 0 16px 32px 0 rgba(7, 28, 31, 0.1);

  /**
   * TYPOGRAPHY
   */

  /* Font Family */
   --fontFamily_Open_Sans_sans-serif: 'Open Sans', sans-serif;
   --fontFamily_Rajdhani_sans-serif: 'Rajdhani', sans-


/*
 * "Hello, world!" minimal kernel module - /proc version
 *
 * Valerie Henson <val@nmt.edu>
 *
 */

#include <linux/init.h>
#include <linux/module.h>
#include <linux/proc_fs.h>

/*
 * Write "Hello, world!" to the buffer passed through the /proc file.
 */

static int
hello_read_proc(char *buffer, char **start, off_t offset, int size, int *eof,
        void *data)
{
    char *hello_str = "Hello, world!\n";
    int len = strlen(hello_str); /* Don't include the null byte. */
    /*
     * We only support reading the whole string at once.
     */
    if (size < len)
        return -EINVAL;
    /*
     * If file position is non-zero, then assume the string has
     * been read and indicate there is no more data to be read.
     */
    if (offset != 0)
        return 0;
    /*
     * We know the buffer is big enough to hold the string.
     */
    strcpy(buffer, hello_str);
    /*
     * Signal EOF.
     */
    *eof = 1;

    return len;

}

static int __init
hello_init(void)
{
    /*
     * Create an entry in /proc named "hello_world" that calls
     * hello_read_proc() when the file is read.
     */
    if (create_proc_read_entry("hello_world", 0, NULL, hello_read_proc,
                    NULL) == 0) {
        printk(KERN_ERR
               "Unable to register \"Hello, world!\" proc file\n");
        return -ENOMEM;
    }

    return 0;
}

module_init(hello_init);

static void __exit
hello_exit(void)
{
    remove_proc_entry("hello_world", NULL);
}

module_exit(hello_exit);

MODULE_LICENSE("GPL");
MODULE_AUTHOR("Valerie Henson <val@nmt.edu>");
MODULE_DESCRIPTION("\"Hello, world!\" minimal module");
MODULE_VERSION("proc");


	tk._.maybeStartOfSimpleCommand = Boolean(
				last.is("EMPTY") ||
					last.is("SEPARATOR_OP") ||
					last.is("OPEN_PAREN") ||
					last.is("CLOSE_PAREN") ||
					last.is("NEWLINE") ||
					last.is("NEWLINE_LIST") ||
					last.is("TOKEN") === ";" ||
					last.is("PIPE") ||
					last.is("DSEMI") ||
					last.is("OR_IF") ||
					last.is("PIPE") ||
					last.is("AND_IF") ||
					(!last.is("For") &&
						!last.is("In") &&
						!last.is("Case") &&
						values(mode.enums.reservedWords).some(word => last.is(word)))
			);

			return tk;
		}),
		lookahead
	);
};

export default identifyMaybeSimpleCommands;
interface Event {
  date: Date;
  name: string;
  reason: string;
}

interface Month {
  events: Event[];
}

export default class Calendar {

  private months: Month[];

  constructor(months: Month[]) {
    this.months = months;
  }

  public setMonths(months: Month[]): void {
    this.months = months;
  }

  public getMonths(): Month[] {
    return this.months;
  }

}
import { OrderState, Order } from "./order";
import { ApprovedOrder } from "./ApprovedOrder";
import { FinishOrder } from "./FinishOrder";

export class CancelOrder implements OrderState {
  constructor(private order: Order) {}

  newOrder(): string {
    return "O pedido precisa ser finalizado!";
  }
  approvedOrder(): string {
    return "O pedido precisa ser finalizado!";
  }
  cancelOrder(): string {
    return "O pedido precisa ser finalizado!";
  }
  carryOrder(): string {
    return "O pedido precisa ser finalizado!";
  }
  deliveOrder(): string {
    return "O pedido precisa ser finalizado!";
  }
  finishOrder(): string {
    this.order.setState(new FinishOrder(this.order));
    return "Pedido finalizado!";
  }

  //Métodos extras
  backOrder(): string {
    return "";
  }
  scheduleOrder(): string {
    return "";
  }
  editOrder(): string {
    return "";
  }
}
import { Injectable } from '@angular/core';
import { FormBuilder, Validators } from '@angular/forms';

@Injectable({ providedIn: 'root'})
export class BaseFormCrearUsuario {

    private isValidEmail = /\S+@\S+\.\S+/;
    errorMessage = null;

    constructor(private fb:FormBuilder) {

    }

    baseFormCrearUsuario = this.fb.group({
        usuario_nombre:['', [Validators.required]],
        usuario_correo:['', [Validators.required, Validators.pattern(this.isValidEmail)]],
        usuario_contrasena:['', [Validators.required, Validators.minLength(8)]],
        usuario_rol_id:[[Validators.required]]
    });

  isValidField(field:any): boolean {
    this.getErrorMessage(field);
    return (
      (this.baseFormCrearUsuario.get(field).touched || this.baseFormCrearUsuario.get(field).dirty)
    && (!this.baseFormCrearUsuario.get(field).valid)
    );
  }

  private getErrorMessage(field:any): void {
   const {errors} = this.baseFormCrearUsuario.get(