mj-button disappear after import

I have this mjml code
<mjml>   <mj-body>     <mj-section background-color="#fafafa" id="iben4">       <mj-column width="400px" id="id9en">         <mj-image width="200px" src="https://designspell.files.wordpress.com/2012/01/sciolino-paris-bw.jpg" id="iunmg"/>         <mj-button background-color="#F45E43" href="#" id="id8sj">Learn more         </mj-button>       </mj-column>     </mj-section>     <mj-section background-color="#e7e7e7" id="i2a7g">       <mj-column>         <mj-button href="#" id="ik0vq">Hello There!         </mj-button>       </mj-column>     </mj-section>   </mj-body> </mjml>
Here "learn more" button is after mj-image. After import mjml code, mj-button "learn more" is not visible. If I put the code after "hello there!" mj-button, the button is visible.

duplicate of https://github.com/artf/grapesjs-mjml/issues/149
workaround would be to mj-image a proper closing tag:
<mj-image width="200px" src="https://designspell.files.wordpress.com/2012/01/sciolino-paris-bw.jpg" id="iunmg"></mj-image>


npx create-react-app my-app is empty on Mac

Greetings,
Whenever I try to run 'npx create-react-app', it successfully create  a folder with the name of my app, but it does not contain the src nor the public folder.
I have uninstalled and reinstalled create-react-app globally via NPM several times.
What I have tried so far:
npm rm -g create-react-app
npm install -g create-react-app
npx create-react-app my-app
I also updated NPM to 9.2.0
Fun fact: It works just fine if I use Vite, but I need to use create-react-app for this project.

create-react-app is no longer supported when installed globally. In fact, you should see this spelled out on the console when you try to run it via globally installed create-react-app.

I truly appreciate you took time to clarify this for me, next time I use create-react-app, I will make sure to install it locally.

No, you should not install it locally either. Make sure it is removed. then use the npx create-react-app ...

Thanks for the warning and for all your help, I was starting to think I was
never going to be able to solve this. I hope you have a fantastic rest of
the day.
Sinceramente,
Lic. Winser Espinal
On Wed, Dec 21, 2022 at 4:17 PM David G. Simmons @.***>
wrote:

No, you should not install it locally either. Make sure it is removed.
then use the npx create-react-app ...
—
Reply to this email directly, view it on GitHub
https://github.com/facebook/create-react-app/issues/12903#issuecomment-1362045037,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AJE62W4PZVN7H33CNQISPS3WONQVJANCNFSM6AAAAAAS2PN2TI
.
You are receiving this because you modified the open/close state.Message
ID: @.***>


Remove the development cache file on all actions

Switching from development mode and back should always remove the application configuration cache file to ensure that changes are propagated properly.
Discovered when configuration cache files were accidently included in an Apigility skeleton app, where the last action performed was to enable development mode!

Pinging @akrabat and/or @ezimuel to review!

Reviewed. Looks good to me.
I would have merged, but don't have write access to this repo.

I would have merged, but don't have write access to this repo.

Now you do. :)

@weierophinney
About  the review, it has been done too fast. config_cache_key and cache_dir keys are both part of the module_listener_options configuration container. Here, you try to get it from the first config level.


[FEATURE] solve weights_only=False warning,

when update torch to 2.4.0, I got this warning :
/root/anaconda3/envs/py38/lib/python3.8/site-packages/timm/models/_helpers.py:54: FutureWarning: You are using `torch.load` with `weights_only=False` (the current default value), which uses the default pickle module implicitly. It is possible to construct malicious pickle data which will execute arbitrary code during unpickling (See https://github.com/pytorch/pytorch/blob/main/SECURITY.md#untrusted-models for more details). In a future release, the default value for `weights_only` will be flipped to `True`. This limits the functions that could be executed during unpickling. Arbitrary objects will no longer be allowed to be loaded via this mode unless they are explicitly allowlisted by the user via `torch.serialization.add_safe_globals`. We recommend you start setting `weights_only=True` for any use case where you don't have full control of the loaded file. Please open an issue on GitHub for any issues related to this experimental feature.
  checkpoint = torch.load(checkpoint_path, map_location=device)

it is so long and unnecessary, so I hope can modify this code：
# origin code (/home/work/pytorch-image-models/timm/models/_helpers.py line 54:)
  checkpoint = torch.load(checkpoint_path, map_location=device)
# new code
  checkpoint = torch.load(checkpoint_path, map_location=device, weights_only=False)

@GaoShanwen yes, this is a bit of an annoying warning, but cannot fix like that because it will break older torch versions which don't have that arg, so need to do a try except block...
@rwightman oh...thx, I get it, but worried that have to do this soon because the next version torch will change this value as output infos.

@GaoShanwen PR welcome,  but I guess we technically want weights_only=True as all timm checkpoints have and should only be weights only. Otheriwse will get to it eventually, definitely before it breaks anything.

Wow...,I'll try, maybe it won't be quick.

@rwightman hello, I implemented a version that meets my needs:
1.weights_only=None (for lower version, default)
2.weights_only=False / weights_only=True (for solve warnings)
It takes effect in train.py, validate.py and onnx_export.py.
But it may still has a issues: resume epoch will be none when weights_only=true, then start epoch will be set to zero...
Looking forward to suggestions.


[Switch] Add circular progress (display processing status) to Switch; indeterminate state also requested

[x] I have searched the issues of this repository and believe that this is not a duplicate.

Summary 💡

Add a prop to Switch called processing or somesuch that will put a CircularProgress on the Switch thumb.
Add an indeterminate prop to Switch that puts the thumb in the middle of the track.

Examples 🌈

https://material.io/components/selection-controls#switches Click that and scroll down to "Display processing status" to see an exact example of the circular progress overlay.
https://codepen.io/team/keyframers/pen/QWweedX Not quite what I'm asking for, but nevertheless an example of a switch with an indeterminate state.

Motivation 🔦

I have a switch that performs a server action, and I want to indicate to the user that the process isn't complete yet.
Sometimes you need a ternary checkbox, but the design team wants it as a switch, then you become sad because it doesn't exist in Material UI yet.

Duplicate of #19140


Support kubernetes ingress

Find Kubernetes Ingresses that are not used. -> Not pointing to any services
The command should be ing or ingress

@yonahd, I can help with this.
what do you think about iterating over the rules and paths of an ingress and checking if the service (using path.Backend.Service.Name) exists?
makes it easy to find unused ingresses by checking if all of the services do not exist, also if one service exist you can skip the rest of the paths in the ingress.

@Yuni-sa Sounds good!
If the the backend is a resource it should automatically be marked as used (we need to be safe)
A non prefixed ingress should be accounted for as well
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: test-ingress
spec:
  defaultBackend:
    service:
      name: test
      port:
        number: 80

Looking at it this way, it is a pretty large pr.
If you want someone to take this together with you it should be an option


Suggestion - support right-to-left sheets

Hi,
Thanks for your great library.
I would love to see support in sheets to be right to left for languages that are right to left.
Thanlks

send me xlsx example

SimpleXLSXGen::fromArray($list, 'Users')
->setDefaultFont('Segoe UI')
->setDefaultFontSize(12)
->mergeCells('B1:M1')
->saveAs($save_url . "test.xlsx");

Hello. Do you planning to support RTL sheets?
Thanks

Hello. Do you planning to support RTL sheets?
Thanks

RTL mode added in 1.3.13
$data = [
    [ 1, 2, 3],
    [ 4, 5, 6]
];
SimpleXLSXGen::fromArray($data)
    ->rightToLeft()
    ->saveAs('test_rtl.xlsx');

Hi Sergey:
I think there is a logic problem in _sheetToXML method. Initializing $SHEETVIEWS and $AC before the IF block its Ok, if we terminate the $SHEETVIEWS string after the IF block. I think it should be:
        # code
        $SHEETVIEWS = '<sheetViews><sheetView tabSelected="1" workbookViewId="0"' . ($this->rtl ? ' rightToLeft="1"' : '') . '>';
        $AC = 'A1'; // Active Cell
        if (count($this->sheets[$idx]['rows'])) {
            # code
        } else {
            $ROWS[] = '<row r="1"><c r="A1" t="s"><v>0</v></c></row>';
            $REF = 'A1:A1';
        }
        $SHEETVIEWS .= '<selection activeCell="' . $AC . '" sqref="' . $AC . '"/>';
        $SHEETVIEWS .= '</sheetView></sheetViews>';
        # code

What do you think?


Update homebrew package

It would be awesome if gringo/clingo was available via homebrew. There is already a gringo formula: https://github.com/Homebrew/homebrew-core/blob/c24a2bbdf6d7fdf5820b6a44ad8926933ee53f21/Formula/gringo.rb.

There is a gringo homebrew package also including clingo. Unfortunately, it is for gringo/clingo version 4. Also, I am not maintaing the homebrew packages. You could contact the maintainer of the package (or if you want something to happen soon provide a formula to build clingo 5 yourself).
I am not going to maintain MacOS packages because I do not use the operating system. If you have specific questions on how to build clingo on MacOS, you can ask here of course or use our mailing list.

Clingo is now available on homebrew: http://www.brewformulas.org/Clingo.


 The measurement is done every second but the values get summed up for a minute. First of all, there occurs some errors because of maximum resistance was reached. After this errors the sensors was placed inside. The absolute values are far beyond useful.
The sensor itself is burned-in (at least for a week) and this specific print-out was done after three hours running.

I have a SGP30 and CCS811 at the same spot and did some graphs. The sensor is on the window board and the bay is separated with a paper curtain from the room itself. The curtail has got a gap  to the board about 3cm.
Measurement is every second.

300s I opened a windows

After 90 minutes it looks like this:

1566 I blow into the gap
1600-1650 I wiggle the curtain a little bit to simulate some air flow

Nice graphs.
I agree that values like eCO2: 8421 ppm eTVOC: 14433 ppb make no sense.
I also cannot explain the differences between CCS811 and SGP30. The CCS811: errstat=899=--vhXmrwF--AD-iE does not raise my trust in the values.
Please do note that these sensors are TVOC sensors not CO2 sensors (the CO2 is computed from the TVOC, assuming the sensor is indoor).

The SGP30 (I use the sparfun library) is also not very trustworthy, sometimes it keeps the eCO2 value at 400 which can't be true. (even for a MOX sensor, which should change the resistance by blowing over it).

These are relative sensors.
If you take a bottle, spray a bit of alcohol in it, hang your sensor in it, close the bottle, and then switch on the sensor, it will happily report clean air (assuming you do not use the set baseline feature).
It also means that the 'zero' value is arbitrary. what the sensors typically do is take the value at power on (again, assuming you do not use the set baseline feature), and use that as reference. Typically assuming clean air, and mapping that to 400 (SGP30), 450 (CCS811), 500 (iAQcore).
By the way, I heard once, blowing on the sensor is a bit abusive. I forgot why. Maybe you cool the heater too much and it needs to step current, maybe it was the moist in your breath. Anyhow they told me not to blow, but to use a marker pen or breath some breath freshener on it.
Good luck


[Beta Docs]: overflow of the sidebar nav

When visiting the react beta docs on Firefox, I noticed that the sidebar overflows and hides some texts of the main layout

Can be replicated in 1366px width screen size.

unable to replicate this problem

unable to replicate this problem

Ways to replicate:

Open beta docs specifically on Firefox
Change screen size to >= 1024px


replaced zenith references with neon.

this patch replaces zenith references with neon in a few readme's since the project was renamed; and contributes towards this issue.
note: the patch introduces changes to readme only, and no build failures are expected.

Squashed and pushed, thanks!


FATAL EXCEPTION | JCVideoPlayer :880

Hello,
I am playing video in fragment. It plays well first time but on replay it crashes.
java.lang.NullPointerException: Attempt to invoke virtual method 'android.support.v7.app.ActionBar android.support.v7.app.AppCompatActivity.getSupportActionBar()' on a null object reference
at fm.jiecao.jcvideoplayer_lib.JCVideoPlayer.showSupportActionBar(JCVideoPlayer.java:880)
at fm.jiecao.jcvideoplayer_lib.JCVideoPlayer.clearFullscreenLayout(JCVideoPlayer.java:446)
at fm.jiecao.jcvideoplayer_lib.JCVideoPlayer.onCompletion(JCVideoPlayer.java:484)
at fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard.onCompletion(JCVideoPlayerStandard.java:778)
at fm.jiecao.jcvideoplayer_lib.JCVideoPlayerManager.completeAll(JCVideoPlayerManager.java:42)
at fm.jiecao.jcvideoplayer_lib.JCVideoPlayer.prepareMediaPlayer(JCVideoPlayer.java:199)
at fm.jiecao.jcvideoplayer_lib.JCVideoPlayer.onClick(JCVideoPlayer.java:179)
at fm.jiecao.jcvideoplayer_lib.JCVideoPlayerStandard.onClick(JCVideoPlayerStandard.java:176)
at android.view.View.performClick(View.java:5156)
at android.view.View$PerformClick.run(View.java:20755)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at

Activity extends AppCompatActivity

Thanks am able to resolve.


Still supported?

Hi,
This library looks to be a really nice idea.
It looks like the library is not maintained anymore, is that true?

Hey👋
Yes, I don't maintain it anymore


Can't set ports

I'm very confused

Alright so it appears that you can't have camel cased options I guess?
I mean I don't really care if it stays like this, I just won't use any camel cased options, it's just weird

Line 54 of capability.py sets the option to all lower case.
I think you're actually trying to get me to keep everything in all lower case, so I'm gonna leave this. It's just funny :D


ACME certificates not always created in cluster mode with onHost option.

Do you want to request a feature or report a bug?
Bug

What did you do?

Configure Træfik to use a KV store (Consul) to save both its configuration and ACME certificates
Start Swarm services to expose
Start Swarm service with Traefik (one or many instances)

What did you expect to see?
ACME certificates generated into the KV store.
What did you see instead?
Sometimes, certificates are not generated.
Output of traefik version: (What version of Traefik are you using?)
1.5

Analyzis
When Træfik starts in cluster mode, all the instances start as a worker.
A worker cannot do ACME challenges and generate ACME certificates.
If frontend are detected by Træfik before the leader election, the certificates will not be generated as long as a new frontend is detected.

Do you think in this case, if traefik is a worker, we could have it check to make sure there is a leader as a blocking operation before processing the frontend?

@dtomcej It's a solution, we can force the certificate generation for all hosts when the leadership changes too.
This issue needs more investigations.

Hello,
This bug is linked to a feature that no longer exists in the supported versions of Traefik.
Closing accordingly.
Please feel free to re-open it if necessary.


Zip headers not found. Probably not a zip file

I have a zip file can be unzip in windows,but can't unzip by using zip4j or java system code,please check the exception below.
Exception in thread "main" net.lingala.zip4j.exception.ZipException: Zip headers not found. Probably not a zip file
at net.lingala.zip4j.headers.HeaderReader.readEndOfCentralDirectoryRecord(HeaderReader.java:119)
at net.lingala.zip4j.headers.HeaderReader.readAllHeaders(HeaderReader.java:74)
at net.lingala.zip4j.ZipFile.readZipInfo(ZipFile.java:945)
at net.lingala.zip4j.ZipFile.extractAll(ZipFile.java:437)
at music.ZipTest.unZip(ZipTest.java:30)
at music.ZipTest.main(ZipTest.java:19)

Can you attach the zip file? Unfortunately, without a zip file it will be hard to tell what went wrong.

thank you for reply. do you have personal email address,I just replied a mail with the zip file but it's been rejected because of the file size.
------------------ 原始邮件 ------------------
发件人: "Srikanth Reddy<EMAIL_ADDRESS>发送时间: 2020年3月4日(星期三) 下午3:14
收件人<EMAIL_ADDRESS>抄送: "1196263517"<1196263517<EMAIL_ADDRESS>主题: Re: [srikanth-lingala/zip4j] Zip headers not found. Probably not a zip file (#151)
Can you attach the zip file? Unfortunately, without a zip file it will be hard to tell what went wrong.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Yes, please send it to<EMAIL_ADDRESS>

And also, which version of zip4j are you using?

test.zip
please check this file。version 2.4.0

testerror.zip
version 2.4.0

That was in fact not a zip file. It was a rar file, with the file name having an extension of .zip. Below is the output from a tool that I got for you zip file:
Path = testerror.zip
Open WARNING: Can not open the file as [zip] archive
Type = Rar

thank you for reply

I met the same problem.But it is a zip file,and I can open and unzip it with zip method by 7zp.

@Lizhihzzx Would it be possible for you to send me the zip file?

I'm having the same issue, happening with multiple zip files randomly.


Hide content in notification

Checklist

[X] I have used the search function to see if someone else has already submitted the same feature request.
[X] I will describe the problem with as much detail as possible.
[X] This issue only contains a request for one single feature, not multiple (related) features.

App version
6.714
Problem you are trying to solve
I'd like to keep my email more secure.
I live in a country where stolen phones are really common. There is a trend of phones being stolen while the owner has them unlocked, and they try not to click on the button to keep the screen on so they can access the data.
Suggested solution
I'd like to propose a configuration option where I can set "hide content" even when the phone is unlocked. Some sites and apps have the option to change the password of your account by sending you an email with a link or sending you a code by email. If any of those, the link or the code is at the start of the email, it may show on the notification bar if the user expands the notification.
So, my final ask would be to create an option to show only the email subject at the notification.
Screenshots / Drawings / Technical details
Currently, this is how that is:

I'd like to propose an option that simply doesn't allow the email to be expanded.

Asked at #7530 to post the suggestions on connect. Here is the link: https://connect.mozilla.org/t5/ideas/biometrics-to-open-thunderbird-android/idi-p/74741#M40268.


Problem 4: ";" What does that mean?

Do you have any description for this? What's a problem?

This is a typo. You could open a PR for this so it can be fixed 😄

@lydiahallie done!


Download semantics for Files

Currently, Swift is the only API that when given a GET request, I.e. /mycontainer/myfile.txt it returns the contents of the file, not the metadata.
Should we follow this discrepancy in the CLI? or should we provide consistency.
For example:
rack files container1 myfile.txt could return the metadata and
rack files container1 myfile.txt --download would then return the contents?
Pros: Consistent calling convention across all services.
Cons: Most likely use of files will involve getting the file, not the metadata, leading to more typing in the default case.
Thoughts?

As I think about this with @rgbkrk I feel like --download is a better option. It will never surprise you when the option is explicit.

Do we assume stdout or a download in these cases?
I could see myself using
rack files my-container log1.txt --download | grep "500 Internal Server Error"

The problem I'm having with that syntax is that it's not consistent with the other services. Currently, we have a rack <service> <subservice> <action> <flags> format.
To stay consistent, It'd need to be something like:
rack files object download --container <containerName> --object <objectName>

I like it from a consistency standpoint (@jrperrit) but it does add a significant amount of typing. Perhaps it's worth it?

There's not really a subservice on cloudfiles is there? Also, object confuses, for me, the access of a single object vs a container. This would come out as:
rack files object list --container <containerName>

Would rack files container list make more sense?

Closing for now. This has been implemented. Comment and/or re-open to to continue discussion.


List of components

Adding the below components

Languages
Identifiers
Related Identifiers

Related work update:

Will look even better when resource type is changed into a single dropdown field.


Instagram parsing

Checklist

[ ] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2021.06.06
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://www.instagram.com/comiccon_prague/']
[debug] Encodings: locale cp1250, fs mbcs, out cp852, pref cp1250
[debug] youtube-dl version 2021.06.06
[debug] Python version 3.4.4 (CPython) - Windows-10-10.0.19041
[debug] exe versions: ffmpeg 4.4-essentials_build-www.gyan.dev, ffprobe 4.4-essentials_build-www.gyan.dev
[debug] Proxy map: {}
ERROR: comiccon_prague: Failed to parse JSON  (caused by ValueError('Expecting value: line 1 column 1 (char 0)',)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\extractor\common.py", line 906, in _parse_json
  File "C:\Python\Python34\lib\json\__init__.py", line 318, in loads
  File "C:\Python\Python34\lib\json\decoder.py", line 343, in decode
  File "C:\Python\Python34\lib\json\decoder.py", line 361, in raw_decode
ValueError: Expecting value: line 1 column 1 (char 0)
Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\extractor\common.py", line 906, in _parse_json
  File "C:\Python\Python34\lib\json\__init__.py", line 318, in loads
  File "C:\Python\Python34\lib\json\decoder.py", line 343, in decode
  File "C:\Python\Python34\lib\json\decoder.py", line 361, in raw_decode
ValueError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\YoutubeDL.py", line 815, in wrapper
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\YoutubeDL.py", line 847, in __extract_info
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\YoutubeDL.py", line 933, in process_ie_result
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\YoutubeDL.py", line 1030, in __process_playlist
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\extractor\instagram.py", line 333, in _extract_graphql
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\extractor\common.py", line 899, in _download_json
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\extractor\common.py", line 883, in _download_json_handle
  File "C:\Users\dst\AppData\Roaming\Build archive\youtube-dl\ytdl-org\tmpkqxnwl31\build\youtube_dl\extractor\common.py", line 910, in _parse_json
youtube_dl.utils.ExtractorError: comiccon_prague: Failed to parse JSON  (caused by ValueError('Expecting value: line 1 column 1 (char 0)',)); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Description
Nothing to explain really. It seems to have a trouble parsing JSON when downloding whole Instagram channel.

sorry, I'm dumb


How to use proxies in instaloder instance?

How can I use proxies when login into the instaloder instance?
If possible, please provide the syntax.
Somewhere in the documentation, it's clearly written that you can/should not use two instaloader instances in parallel. Therefore I think we are only left with the option to run the different instances with different usernames and passwords right? I saw in one issue that lots of accounts got banned while running the scraper.  so I want to add the proxy for my account security.
Additionally, rotating the user-agent can help reduce the 429 error?

Was having issues setting up the profixied version via https://github.com/restyler/instaloader -- interested to see answer.


fix endianness typo

Simple typo fix. "Endianness" has 2 n's
https://en.wikipedia.org/wiki/Endianness

Well that is embarrassing :/

Coverage remained the same at 91.319% when pulling b64f161ecb4bfc57f025dbedc9c79f706dead84c on TomMcCabe:fix_endianness_typo into 5e431b7fbd2f4a1a665b9d23df56735e9d1e5b81 on bitcoin-s:master.

ACK


Allow type to have peerDependencies instead of dependencies.

Currently, when a type is published, all imported types are added as dependencies.
Example: react-router v3:
dependencies": {
        "@types/history": "^3",
        "@types/react": "*"
}

But as react is a peerDependency of react-router, you can easily have an application with react@15 and react-router.
In that case definitions are broken because npm install react@16 as child of react-router.
definitions dependencies should strictly follow what is defined is the module package.json. If a dependency is a dependency, type dependency should be a type dependency, in dependency is a peerDependency, type dependency should be a peerDependency.

Absolutely agree. This makes it a pain for example to use react components with preact when using typescript.

It is also possible for these kinds of inherent dependencies to intersect in nasty ways with npm and yarn's resolution algorithms and preference (given a lockfile) not to update nested dependencies (cf. #360). In our own app, for example, we have a direct dependency on @types/ember which specifies we want the latest available. Another setup of types we use also depends on @types/ember but with "*" as its resolution.
Yarn tries to preserve whatever it had previously installed there, so we end up with two separate copies of @types/ember, which in turn causes TS to complain about redeclarations (as you'd expect, since that's what it sees).

It's a bit of a pickle because we have no way to validate, on the DT side, that someone's PR doesn't break some combination of peerDependency satisfactors. We can't plausibly fetch every combination in the matrix of valid peer dependencies' published versions and ensure that they aren't breaking someone somewhere.

Totally makes sense. If a type explicitly sets a dependency in its own package.json, does that override (and therefore could that be a solve)? E.g. in this case I could probably fix this by making the ember-feature-flags depend explicitly on "@types/ember": "latest" and I think that might resolve it?

Can't this be automated like the dependencies are?
I had a simple idea:
You can just npm info {moduleName} and compare the original module dependencies and the dependecy list extracted from typing.
If one of these extracted dep is peer in the original module, add them as peer instead of dependency :)

@andy-ms opinions on the above? Seems reasonable but I haven't slept much 🙃

"peerDependencies" would mean that people would have to remember to install those, while "dependencies" are installed automatically. Not a big deal since npm gives a warning, but we might want to update typingsInstaller to look for peerDependencies and install those too.
Not a big fan of doing npm info on the real module since it would double the number of npm requests we normally have to do -- would be better to provide a way to explicitly request peerDependencies.

Most of the time, when somebody install something like  @types/react-redux, @types/react is already installed. That's the point of peerDependencies :) If package developer choose to have a peerDependency instead of a dependency there must be a reason a typing package should respect that...
But yeah, I agree that npm info is not the best way...

This issue is causing a lot of pain at the moment. All of my definitely typed libs are currently reporting "Conflicting definitions for 'node'" because the version of node has automatically incremented to 9., due to the @types/node : "", while my project is still on 8.*.
Any idea or work arounds appreciated.

My case is targeting webpack 3, hence including
"@types/webpack": "~3" in my dev-dependencies.
But as soon I install "@types/webpack-dev-server": "^2.9.4" with a generated package.json of
"dependencies": {         "@types/webpack": "*",
i get
node_modules/@types/webpack-dev-server/
└── node_modules
    ├── source-map
    │   ├── dist
    │   └── lib
    └── @types
        ├── tapable
        └── webpack

where @types/webpack is listed as "version": "4.4.0".

It's a bit of a pickle because we have no way to validate, on the DT side, that someone's PR doesn't break some combination of peerDependency satisfactors. We can't plausibly fetch every combination in the matrix of valid peer dependencies' published versions and ensure that they aren't breaking someone somewhere.

Right now it looks a lot, from the user's perspective, like there are two bad choices: knowingly break some projects where the "dependencies" behavior causes issues, or un-knowingly break some other projects where the "peerDependencies" behavior causes issues.  I feel like the latter is a much better situation for users of TS because there are avenues for fixing the issue: don't install the peerDependencies and ignore the incorrect PD warnings from yarn/npm or PR the .d.ts file and fix the issue.  Right now, we have to rely on elaborate compiler configuration changes to get our stuff in a working order... simply ignoring peer dependencies would be a lot less of a burden.
So while you're correct that you can't 100% guarantee that packages' peerDependencies don't create an impossible dependency graph, you can 100% guarantee that the current behavior does cause impossible dependency graphs, and it seems like this is a case of perfect being the enemy of good and letting bad win.

Yeah, it sure seems like any plugin is going to need to list the host's typings in peerDependencies, or else users are going to end up with multiple versions of the host's typings such that the TypeScript compiler yells at them that import("/project/node_modules/foo").Foo is missing some properties compared to import("/project/node_modules/foo-bar/node_modules/foo").Foo when they actually try to wire up the plugin in their foofile.js / foofile.ts.


Roll engine 39c46dea4b73..36cdd2ee6b8f (2 commits)

https://github.com/flutter/engine/compare/39c46dea4b73...36cdd2ee6b8f
git log 39c46dea4b7347a252218aaff5caac5dc2fec8cd..36cdd2ee6b8f44e36265dc5394664691b9b5bb6b --no-merges --oneline
36cdd2ee6 Roll src/third_party/skia 436d47d5bde9..09198525261a (6 commits) (flutter/engine#8012)
9bef73a1a Roll src/third_party/skia e1f5b644656f..436d47d5bde9 (3 commits) (flutter/engine#8009)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff (garyq@google.com), and stop
the roller if necessary.

Trybots failed. These were the failed builds: https://cirrus-ci.com/task/5444338860425216

Commit queue failed; closing this roll.


Add more sophisticated Logger

Implement logging other that standard log package

We use zap in our code, it has higher performance than the go-kit logging library we used before. We can port our zap integration into baseplate.go
That being said, this is still more for baseplate users to use, usage by baseplate itself still need to be careful.

Closed with #21


Connection to server fail

when i try to run the oandav20test program i get the following error
python3 oandav20test.py --account '' --token  --data0 "GBP_USD"
++++++++++++++++++++++++++++++++++++++++
Strategy Created
Datetime, Open, High, Low, Close, Volume, OpenInterest, SMA
***** STORE NOTIF: Connection to v20 REST server at https://api-fxpractice.oanda.com:443/v3/accounts//instruments failed
***** DATA NOTIF: NOTSUBSCRIBED
++++++++++++++++++++++++++++++++++++++++
but when i run this command
curl --cipher 'DEFAULT:!DH'  -H "Authorization: Bearer " https://api-fxpractice.oanda.com/v3/accounts//instruments
i get this responce
+++++++++++++++++++++++++++++++++++++
{"instruments":[{"name":"CHF_JPY","type":"CURRENCY","displayName":"CHF/JPY","pipLocation":-2,"displayPrecision":3,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"100.000","minimumTrailingStopDistance":"0.050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"0","shortRate":"0","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_HKD","type":"CURRENCY","displayName":"EUR/HKD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.1","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0277","shortRate":"-0.0082","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"AUD_NZD","type":"CURRENCY","displayName":"AUD/NZD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0138","shortRate":"-0.0097","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_DKK","type":"CURRENCY","displayName":"USD/DKK","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.018","shortRate":"-0.0703","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_HKD","type":"CURRENCY","displayName":"USD/HKD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.1","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0182","shortRate":"-0.0114","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_NOK","type":"CURRENCY","displayName":"USD/NOK","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.07","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0091","shortRate":"-0.0127","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"CAD_SGD","type":"CURRENCY","displayName":"CAD/SGD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0365","shortRate":"-0.0452","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"AUD_JPY","type":"CURRENCY","displayName":"AUD/JPY","pipLocation":-2,"displayPrecision":3,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"100.000","minimumTrailingStopDistance":"0.050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"0","shortRate":"0","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_CAD","type":"CURRENCY","displayName":"USD/CAD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.011","shortRate":"-0.0103","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"ZAR_JPY","type":"CURRENCY","displayName":"ZAR/JPY","pipLocation":-2,"displayPrecision":3,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"100.000","minimumTrailingStopDistance":"0.005","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.07","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"0","shortRate":"0","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"GBP_HKD","type":"CURRENCY","displayName":"GBP/HKD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.1","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0782","shortRate":"-0.0429","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_CZK","type":"CURRENCY","displayName":"USD/CZK","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.1745","shortRate":"-0.1196","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"GBP_NZD","type":"CURRENCY","displayName":"GBP/NZD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0521","shortRate":"-0.0379","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_DKK","type":"CURRENCY","displayName":"EUR/DKK","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.1","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0443","shortRate":"-0.0451","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"AUD_CAD","type":"CURRENCY","displayName":"AUD/CAD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0128","shortRate":"-0.0096","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"CHF_ZAR","type":"CURRENCY","displayName":"CHF/ZAR","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.07","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0894","shortRate":"0.0285","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"NZD_USD","type":"CURRENCY","displayName":"NZD/USD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0106","shortRate":"-0.0118","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_HUF","type":"CURRENCY","displayName":"USD/HUF","pipLocation":-2,"displayPrecision":3,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"100.000","minimumTrailingStopDistance":"0.050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.052","shortRate":"-0.0384","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_CZK","type":"CURRENCY","displayName":"EUR/CZK","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.1848","shortRate":"-0.0783","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_HUF","type":"CURRENCY","displayName":"EUR/HUF","pipLocation":-2,"displayPrecision":3,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"100.000","minimumTrailingStopDistance":"0.050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0522","shortRate":"-0.0263","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"CAD_HKD","type":"CURRENCY","displayName":"CAD/HKD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.1","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.021","shortRate":"-0.0148","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_ZAR","type":"CURRENCY","displayName":"USD/ZAR","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.07","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.08","shortRate":"0.0201","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"AUD_USD","type":"CURRENCY","displayName":"AUD/USD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0128","shortRate":"-0.0094","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"NZD_CAD","type":"CURRENCY","displayName":"NZD/CAD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0113","shortRate":"-0.0113","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_PLN","type":"CURRENCY","displayName":"EUR/PLN","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0256","shortRate":"-0.0028","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_CAD","type":"CURRENCY","displayName":"EUR/CAD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0176","shortRate":"-0.0043","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_USD","type":"CURRENCY","displayName":"EUR/USD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.017","shortRate":"-0.0046","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_JPY","type":"CURRENCY","displayName":"EUR/JPY","pipLocation":-2,"displayPrecision":3,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"100.000","minimumTrailingStopDistance":"0.050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"0","shortRate":"0","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"CAD_CHF","type":"CURRENCY","displayName":"CAD/CHF","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0015","shortRate":"-0.0206","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"GBP_USD","type":"CURRENCY","displayName":"GBP/USD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"50000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0447","shortRate":"-0.0388","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_MXN","type":"CURRENCY","displayName":"USD/MXN","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.10","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0824","shortRate":"0.0447","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"CHF_HKD","type":"CURRENCY","displayName":"CHF/HKD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.1","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0302","shortRate":"-0.0054","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"GBP_JPY","type":"CURRENCY","displayName":"GBP/JPY","pipLocation":-2,"displayPrecision":3,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"100.000","minimumTrailingStopDistance":"0.050","maximumPositionSize":"0","maximumOrderUnits":"50000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"0","shortRate":"0","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_TRY","type":"CURRENCY","displayName":"USD/TRY","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"10000000","marginRate":"0.12","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.3005","shortRate":"-0.0585","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"NZD_JPY","type":"CURRENCY","displayName":"NZD/JPY","pipLocation":-2,"displayPrecision":3,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"100.000","minimumTrailingStopDistance":"0.050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"0","shortRate":"0","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"AUD_CHF","type":"CURRENCY","displayName":"AUD/CHF","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.003","shortRate":"-0.0194","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"AUD_HKD","type":"CURRENCY","displayName":"AUD/HKD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.1","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0229","shortRate":"-0.0134","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_CHF","type":"CURRENCY","displayName":"EUR/CHF","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0086","shortRate":"-0.0138","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"AUD_SGD","type":"CURRENCY","displayName":"AUD/SGD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0408","shortRate":"-0.0408","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_CHF","type":"CURRENCY","displayName":"USD/CHF","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0017","shortRate":"-0.0194","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_NOK","type":"CURRENCY","displayName":"EUR/NOK","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.07","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0157","shortRate":"-0.0068","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_SGD","type":"CURRENCY","displayName":"EUR/SGD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0996","shortRate":"-0.0662","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"TRY_JPY","type":"CURRENCY","displayName":"TRY/JPY","pipLocation":-2,"displayPrecision":3,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"100.000","minimumTrailingStopDistance":"0.050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.12","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"0","shortRate":"0","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_THB","type":"CURRENCY","displayName":"USD/THB","pipLocation":-2,"displayPrecision":3,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"100.000","minimumTrailingStopDistance":"0.050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"0","shortRate":"0","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"GBP_CHF","type":"CURRENCY","displayName":"GBP/CHF","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0097","shortRate":"-0.0764","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_PLN","type":"CURRENCY","displayName":"USD/PLN","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0202","shortRate":"-0.0098","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"GBP_AUD","type":"CURRENCY","displayName":"GBP/AUD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0423","shortRate":"-0.0445","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"SGD_HKD","type":"CURRENCY","displayName":"SGD/HKD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.1","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0632","shortRate":"-0.0366","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"NZD_SGD","type":"CURRENCY","displayName":"NZD/SGD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0364","shortRate":"-0.0491","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"GBP_PLN","type":"CURRENCY","displayName":"GBP/PLN","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0781","shortRate":"-0.0321","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_SGD","type":"CURRENCY","displayName":"USD/SGD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0323","shortRate":"-0.0385","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_SEK","type":"CURRENCY","displayName":"EUR/SEK","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0142","shortRate":"-0.0076","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"HKD_JPY","type":"CURRENCY","displayName":"HKD/JPY","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.1","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"0","shortRate":"0","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"CAD_JPY","type":"CURRENCY","displayName":"CAD/JPY","pipLocation":-2,"displayPrecision":3,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"100.000","minimumTrailingStopDistance":"0.050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"0","shortRate":"0","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"GBP_ZAR","type":"CURRENCY","displayName":"GBP/ZAR","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.07","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.3067","shortRate":"0.0905","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"NZD_HKD","type":"CURRENCY","displayName":"NZD/HKD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.1","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0217","shortRate":"-0.0158","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_AUD","type":"CURRENCY","displayName":"EUR/AUD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0163","shortRate":"-0.0059","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_CNH","type":"CURRENCY","displayName":"USD/CNH","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0233","shortRate":"-0.008","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"SGD_JPY","type":"CURRENCY","displayName":"SGD/JPY","pipLocation":-2,"displayPrecision":3,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"100.000","minimumTrailingStopDistance":"0.050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0385","shortRate":"-0.0323","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_JPY","type":"CURRENCY","displayName":"USD/JPY","pipLocation":-2,"displayPrecision":3,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"100.000","minimumTrailingStopDistance":"0.050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"0","shortRate":"0","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_TRY","type":"CURRENCY","displayName":"EUR/TRY","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"10000000","marginRate":"0.12","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.3215","shortRate":"-0.0198","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_ZAR","type":"CURRENCY","displayName":"EUR/ZAR","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.07","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0868","shortRate":"0.0257","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"NZD_CHF","type":"CURRENCY","displayName":"NZD/CHF","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0019","shortRate":"-0.0212","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"GBP_CAD","type":"CURRENCY","displayName":"GBP/CAD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0475","shortRate":"-0.0392","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_SAR","type":"CURRENCY","displayName":"USD/SAR","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.1363","shortRate":"-0.113","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_NZD","type":"CURRENCY","displayName":"EUR/NZD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0183","shortRate":"-0.0049","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"EUR_GBP","type":"CURRENCY","displayName":"EUR/GBP","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.065","shortRate":"-0.02","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"USD_SEK","type":"CURRENCY","displayName":"USD/SEK","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.008","shortRate":"-0.0138","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"GBP_SGD","type":"CURRENCY","displayName":"GBP/SGD","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"0","shortRate":"0","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}},{"name":"SGD_CHF","type":"CURRENCY","displayName":"SGD/CHF","pipLocation":-4,"displayPrecision":5,"tradeUnitsPrecision":0,"minimumTradeSize":"1","maximumTrailingStopDistance":"1.00000","minimumTrailingStopDistance":"0.00050","maximumPositionSize":"0","maximumOrderUnits":"100000000","marginRate":"0.05","guaranteedStopLossOrderMode":"DISABLED","tags":[{"type":"ASSET_CLASS","name":"CURRENCY"}],"financing":{"longRate":"-0.0136","shortRate":"-0.0607","financingDaysOfWeek":[{"dayOfWeek":"MONDAY","daysCharged":1},{"dayOfWeek":"TUESDAY","daysCharged":1},{"dayOfWeek":"WEDNESDAY","daysCharged":1},{"dayOfWeek":"THURSDAY","daysCharged":1},{"dayOfWeek":"FRIDAY","daysCharged":1},{"dayOfWeek":"SATURDAY","daysCharged":0},{"dayOfWeek":"SUNDAY","daysCharged":0}]}}],"lastTransactionID":"9306"}
++++++++++++++++++++++++++++++++++++
It looks like i'm pulling from the same "/v3/accounts//instruments"  on th same server in both cases. The only differences i see are the 443 port number and the "--cipher 'DEFAULT:!DH'" i had to use with curl.
Does anyone know if ether of these could cause the connection failure with oandav20test.py
or did i miss something else?

most common issue would be wrong credentials, check if you are using the correct account and token. But I cannot see the issue you actually have.

I used the same token and account in both cases, It works with curl but fails with the oandav20test.py program.

I would like to help you, but the info provided does not much. when using the token and account id from onada, It should work.

Tested it on my practice account. It works. Try to regenerate your token and ensure you are using the token for your practice account. Also ensure you are using an account id for your practice account.


Can't get ESlint to work, I always get the error "ESLint is not running. By default only TypeScript and JavaScript files are validated."

I can't get ESlint to work in any project I try, it was actually working in my project before I reinstalled vscode. When I run the "ESlint: Restart ESlint server" it returns me the following error: "ESLint is not running. By default only TypeScript and JavaScript files are validated. If you want to validate other file types please specify them in the 'eslint.probe' setting"  ps: I'm actually trying to edit a .ts file.
I tried a couple of solutions I found online but none of them actually worked. Thanks in advance!

This is my .eslintrc.json file:
{
  "root": true,
  "env": {
    "browser": true,
    "commonjs": true,
    "es2021": true
  },
  "extends": "standard-with-typescript",
  "overrides": [],
  "parserOptions": {
    "ecmaVersion": "latest"
  },
  "rules": {}
}

This is my settings.json file
{
  "eslint.format.enable": true,
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": true
  },
  "liveServer.settings.donotShowInfoMsg": true,
  "editor.fontSize": 20,
  "editor.minimap.enabled": false,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "liveServer.settings.donotVerifyTags": true,
  "editor.inlineSuggest.enabled": true,
  "glassit.alpha": 220,
  "terminal.integrated.gpuAcceleration": "off",
  "code-runner.runInTerminal": true,
  "github.copilot.enable": {
    "*": true,
    "yaml": false,
    "plaintext": false,
    "markdown": false,
    "c": false,
    "go": true,
    "html": false,
    "javascript": false
  },
  "C_Cpp.updateChannel": "Insiders",
  "editor.formatOnSave": true,
  "bracketPairColorizer.depreciation-notice": false,
  "workbench.iconTheme": "vscode-icons",
  "vsicons.dontShowNewVersionMessage": true,
  "emmet.triggerExpansionOnTab": true,
  "editor.linkedEditing": true,
  "files.associations": {
    "*.js": "javascript"
  },
  "window.zoomLevel": -1,
  "json.schemas": [],
  "eslint": "eslint --ignore-path .gitignore .",
  "eslint.alwaysShowStatus": true,
  "eslint.debug": true,
  "remote.SSH.defaultExtensions": ["gitpod.gitpod-remote-ssh"],
  "eslint.packageManager": "yarn",
  "eslint.trace.server": "off",
  "eslint.workingDirectories": [],
  "eslint.nodePath": "C:\\Program Files\\nodejs",
  "eslint.enable": true,
  "eslint.probe": [
    "javascript",
    "javascriptreact",
    "typescript",
    "typescriptreact",
    "html",
    "vue",
    "markdown",
    "json"
  ],
  "eslint.validate": [
    { "language": "javascript", "autoFix": true },
    { "language": "typescript", "autoFix": true }
  ]
}

Is ESLint installed in your workspace/folder or globally?

Also your settings seem to be a bit all over the place. Try removing all of the eslint prefixed settings and slowly add them as needed.
I'm pretty sure some of them are not defined correctly. AFAIK you can't lint JSON so don't include it in languages to probe. Also you don't seem to have the right parser for linting TypeScript, make sure to check out the typescript-eslint docs for instructions. And what is that eslint setting for...?

It worked!!! I replaced every config I had for brand new config and it work, thanks!


Add coverage.xml to .gitignore.

The coverage file name was changed to coverage.xml at #1266.

FYI @HyukjinKwon

merging.


Fixes a few typos in concepts.md

Fixes a few small typos in concepts.md

Thanks! When I get around to merging the changes from dev into master and testing that it doesn't break anything, I will update the docs online. Much appreciated!


'goal' model is missing in gazebo after turtlebot hits it

Dear turtlebot3 team,
I have a problem when running the simulations.
After the turtlebot3 gets the goal, the goal doesn't render again in gazebo. I checked the rostopic gazebo/model_states, the goal model is respawned, the robot can hit it during training, but it is not showing in the gazebo... What could be the problem?
My system is Ubuntu 16.04, ROS Kinetic, Gazebo 7, in VirtualBox, the setup is from a clean image, following the tutorial in the website.
update: maybe it's relevant, during catkin_make, there is a CMake Warning at /opt/ros/kinetic/share/catkin/cmake/catkin_package.cmake:166 (message):
catkin_package() DEPENDS on 'gazebo' but neither 'gazebo_INCLUDE_DIRS' nor 'gazebo_LIBRARIES' is defined.

Hi, @MingyiZhang :)
I'm so sorry for late reply.
When you run the gazebo, there is goal model? and after the turtlebot3 gets the goal, the goal model doesn't again respawn?


[RFC] Stabilize the Event fields as they are

Context
In https://github.com/target/lorri/pull/183#discussion_r373508954, the idea of changing the Event varlink message to try to deliver a kind of type safety within the restrictions of Varlink was proposed.
When those messages were being converted into Rust enums, there was appeal to this. It would make it possible to use a single top-level TryInto implementation, and all the sub-messages could be Into.
The current plan being discussed makes Event a part of the public interface, to be consumed e.g. by jq in bash.
Proposal
Apart from breaking dependency on Varlink types that will remain private, the Event message in a public context remains as-is, with fields being optional as high in the tree as possible.
This is based on the observation that the trade off is between making a single evaluation for the existence of e.g. a started field, and then the related fields are guaranteed to be present, versus the implicit communication that e.g. the nix_file field, when present` means the same thing in different contexts. Regardless of the approach chosen, the only safety available is provided by comments in the varlink definition.

Separately from the RFC itself, I'd say that I feel that the choice between approaches here is largely one of personal preference. The circumstances around types in Varlink doesn't provide a clearly preferable solution.
I'd argue that scripting-language consumers are more likely to prefer the clarity around a single nix_file field, and consider an extra level of indirection more of a hassle than a preference.

I remain unconvinced, but I'm happy to back off at this point. If this turns out to have been a mistake, we'll just release a new major version.

I opened the RFC specifically to work through the idea. If there's something I'm not seeing, I'd love to hear it.

with fields being optional as high in the tree as possible

Does that mean having more fields being Option internally (instead of proper enums) or less fields?

The fields in question are only Option to serialize for stream_events; I can't think of a place where Lorri consumes them itself except to try_from as part of transmitting them.
The fields in question are currently Option, so it's "the same number." @curiousleo's proposal would have a small reduction in the number of Option fields, but they'd be structs that contain the same ultimate number of fields.
Specifically, the biggest change would be to this message: https://github.com/target/lorri/blob/master/src/com.target.lorri.varlink#L39-L44
Which would become something like
type Failure (
    kind: (io, spawn, exit, output),
    io: ?IOFail,                # iff kind == io, has msg field
    spawn: ?SpawnFail, # iff kind == spawn, has msg, cmd
    exit: ?ExitFail,           # iff kind == exit, has cmd, status, logs
    # no extra information for kind == output
)

Ah, so just the canonical representation of sum types. Makes sense.
>     # no extra information for kind == output

For homogenicity, add that field as an empty struct/record, so that we can add fields later and “pattern matching” for clients works.

So, @Profpatsch your feeling is that we should change the Event format and implement #358 ?

Thanks @Profpatsch for introducing the vocabulary I was missing here!
I think of Failure as a sum type. Unfortunately, varlink only has records (product types). The most obvious way to emulate sum types via records is to say "exactly one of these fields will be populated". This way, we can get a hierarchy where every record is either "sum-ish" (exactly one field set) or "product-ish" (all fields set).
I said I'd back out of the discussion because I think this boils down to personal preference to some degree. I am personally used to thinking in terms of sum and product types, and combinations of optional fields that are populated in particular cases confuse me. I also think that documentation is easier if you can say "exactly one of the fields will be set" or "all of the fields will be set" for every varlink type. That's why I made the proposal to restructure the varlink representation in the first place.
I recognise that these changes come at the cost of more deeply nested messages as compared to the "flat message" current state of affairs.

I also think that documentation is easier if you can say "exactly one of the fields will be set" or "all of the fields will be set" for every varlink type.

Can you say “exactly one” in varlink?
I think “have an enum with all possibilities and an optional field for each enum item that required to be populated if this enum item is set” is a good representation of a sum type.

Can you say “exactly one” in varlink?

No. Also see https://varlink.org/Interface-Definition.

I appreciate the context and distinction between product and sum types. I'm coming around to approximating a sum type as a hedge against future-proofing the interface, even if we can't rely on varlink to guarantee the type.
I do want to stress that the argument against isn't so much the deep nesting that results. I think some users will find that unpleasant and not understand the reason why, but there's worse things happen at sea (or in API design.)
The concern is the documentation behavior of the interface. It's not clear that e.g. the io.msg is the same thing as spawn.msg, as it is when there's a top-of-tree msg, which is clearly reflexively the same.
The ability to make future changes to the interface are more important, though, IMO. So I think we're agreed on rejecting this RFC and altering the Event fields to behave as a kinda-sorta sum-of-products type.

That's great to hear. Thank you for your patience @nyarly as I struggled to find the right vocabulary to express my thoughts on this.


Disable auto jump to next month

How can i disable auto jump to current selected month when i select range?
When i select range and open it again, the month automatically jump to first.

There is no options for control it.
But you can do something like this https://jsfiddle.net/waki/9gym87L4/6/

Thanks!