Task 38583789

Name PFKFB3_A23_A32_r0_4-QUICO_ATM_GAFF2_LOMAP_PFKFB3-4-5-RND2263_0
Workunit 31547827
Created 14 Dec 2025, 17:07:51 UTC
Sent 14 Dec 2025, 17:07:55 UTC
Report deadline 19 Dec 2025, 17:07:55 UTC
Received 14 Dec 2025, 19:30:47 UTC
Server state Over
Outcome Computation error
Client state Compute error
Exit status 195 (0x000000C3) EXIT_CHILD_FAILED
Computer ID 639249
Run time 3 min 39 sec
CPU time 4 sec
Validate state Invalid
Credit 0.00
Device peak FLOPS 4,889.74 GFLOPS
Application version ATM: Free energy calculations of protein-ligand binding v1.20 (cuda1121)
windows_x86_64
Peak working set size 59.28 MB
Peak swap size 42.68 MB
Peak disk usage 1.49 GB

Stderr output

<core_client_version>8.2.8</core_client_version>
<![CDATA[
<message>
Das Betriebssystem kann (null) nicht ausf�hren.
 (0xc3) - exit code 195 (0xc3)</message>
<stderr_txt>
20:23:13 (9580): wrapper (7.9.26016): starting
20:23:13 (9580): wrapper: running Library/usr/bin/tar.exe (xjvf input.tar.bz2)
QB_A23_A32_0.pdb
QB_A23_A32_0.xml
QB_A23_A32_equil.pdb
QB_A23_A32.inpcrd
QB_A23_A32_input.yaml
QB_A23_A32_mdlambda.pdb
QB_A23_A32_min.pdb
QB_A23_A32_npt.pdb
QB_A23_A32.pdb
QB_A23_A32.prmtop
QB_A23_A32_sys.xml
QB_A23_A32_therm.pdb
run.bat
run.sh
20:23:16 (9580): Library/usr/bin/tar.exe exited; CPU time 0.000000
20:23:16 (9580): wrapper: running C:/Windows/system32/cmd.exe (/c call Scripts\activate.bat && Scripts\conda-unpack.exe && run.bat)
  WARNING: The script pyaml.exe is installed in 'D:\BOINC-Data\slots\9\Scripts' which is not on PATH.
  Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
ERROR: Exception:
Traceback (most recent call last):
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_vendor\urllib3\response.py", line 438, in _error_catcher
    yield
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_vendor\urllib3\response.py", line 561, in read
    data = self._fp_read(amt) if not fp_closed else b""
           ^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_vendor\urllib3\response.py", line 527, in _fp_read
    return self._fp.read(amt) if amt is not None else self._fp.read()
           ^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_vendor\cachecontrol\filewrapper.py", line 98, in read
    data: bytes = self.__fp.read(amt)
                  ^^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\http\client.py", line 473, in read
    s = self.fp.read(amt)
        ^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\socket.py", line 718, in readinto
    return self._sock.recv_into(b)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\ssl.py", line 1314, in recv_into
    return self.read(nbytes, buffer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\ssl.py", line 1166, in read
    return self._sslobj.read(len, buffer)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TimeoutError: The read operation timed out

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\cli\base_command.py", line 105, in _run_wrapper
    status = _inner_run()
             ^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\cli\base_command.py", line 96, in _inner_run
    return self.run(options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\cli\req_command.py", line 67, in wrapper
    return func(self, options, args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\commands\install.py", line 379, in run
    requirement_set = resolver.resolve(
                      ^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py", line 95, in resolve
    result = self._result = resolver.resolve(
                            ^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 546, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 397, in resolve
    self._add_to_criteria(self.state.criteria, r, parent=None)
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_vendor\resolvelib\resolvers.py", line 173, in _add_to_criteria
    if not criterion.candidates:
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_vendor\resolvelib\structs.py", line 156, in __bool__
    return bool(self._sequence)
           ^^^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 174, in __bool__
    return any(self)
           ^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 162, in <genexpr>
    return (c for c in iterator if id(c) not in self._incompatible_ids)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\resolution\resolvelib\found_candidates.py", line 53, in _iter_built
    candidate = func()
                ^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 187, in _make_candidate_from_link
    base: Optional[BaseCandidate] = self._make_base_candidate_from_link(
                                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 233, in _make_base_candidate_from_link
    self._link_candidate_cache[link] = LinkCandidate(
                                       ^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 304, in __init__
    super().__init__(
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 159, in __init__
    self.dist = self._prepare()
                ^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 236, in _prepare
    dist = self._prepare_distribution()
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 315, in _prepare_distribution
    return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\operations\prepare.py", line 527, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\operations\prepare.py", line 598, in _prepare_linked_requirement
    local_file = unpack_url(
                 ^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\operations\prepare.py", line 170, in unpack_url
    file = get_http_url(
           ^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\operations\prepare.py", line 111, in get_http_url
    from_path, content_type = download(link, temp_dir.path)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\network\download.py", line 148, in __call__
    for chunk in chunks:
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\cli\progress_bars.py", line 55, in _rich_progress_bar
    for chunk in iterable:
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_internal\network\utils.py", line 65, in response_chunks
    for chunk in response.raw.stream(
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_vendor\urllib3\response.py", line 622, in stream
    data = self.read(amt=amt, decode_content=decode_content)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_vendor\urllib3\response.py", line 560, in read
    with self._error_catcher():
  File "D:\BOINC-Data\slots\9\Lib\contextlib.py", line 158, in __exit__
    self.gen.throw(typ, value, traceback)
  File "D:\BOINC-Data\slots\9\Lib\site-packages\pip\_vendor\urllib3\response.py", line 443, in _error_catcher
    raise ReadTimeoutError(self._pool, None, "Read timed out.")
pip._vendor.urllib3.exceptions.ReadTimeoutError: HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out.
python.exe: can't open file 'D:\\BOINC-Data\\slots\\9\\Scripts\\rbfe_production.exe': [Errno 2] No such file or directory
20:25:07 (9580): C:/Windows/system32/cmd.exe exited; CPU time 4.359375
20:25:07 (9580): app exit status: 0x16
20:25:07 (9580): called boinc_finish(195)
0 bytes in 0 Free Blocks.
380 bytes in 8 Normal Blocks.
1144 bytes in 1 CRT Blocks.
0 bytes in 0 Ignore Blocks.
0 bytes in 0 Client Blocks.
Largest number used: 0 bytes.
Total allocations: 1491431 bytes.
Dumping objects ->
{3835233} normal block at 0x000001F546C1CE60, 48 bytes long.
 Data: <PATH=D:\BOINC-Da> 50 41 54 48 3D 44 3A 5C 42 4F 49 4E 43 2D 44 61 
{3835222} normal block at 0x000001F548933BD0, 32 bytes long.
 Data: <HOME=D:\BOINC-Da> 48 4F 4D 45 3D 44 3A 5C 42 4F 49 4E 43 2D 44 61 
{3835211} normal block at 0x000001F548934950, 32 bytes long.
 Data: <TMP=D:\BOINC-Dat> 54 4D 50 3D 44 3A 5C 42 4F 49 4E 43 2D 44 61 74 
{3835200} normal block at 0x000001F5489339F0, 32 bytes long.
 Data: <TEMP=D:\BOINC-Da> 54 45 4D 50 3D 44 3A 5C 42 4F 49 4E 43 2D 44 61 
{3835189} normal block at 0x000001F548934590, 32 bytes long.
 Data: <TMPDIR=D:\BOINC-> 54 4D 50 44 49 52 3D 44 3A 5C 42 4F 49 4E 43 2D 
{3835158} normal block at 0x000001F546C1CDF0, 48 bytes long.
 Data: <PATH=D:\BOINC-Da> 50 41 54 48 3D 44 3A 5C 42 4F 49 4E 43 2D 44 61 
{3835147} normal block at 0x000001F5489025E0, 102 bytes long.
 Data: <<project_prefere> 3C 70 72 6F 6A 65 63 74 5F 70 72 65 66 65 72 65 
..\api\boinc_api.cpp(309) : {3835144} normal block at 0x000001F546BEED00, 8 bytes long.
 Data: <   G&#245;   > 00 00 06 47 F5 01 00 00 
{3834543} normal block at 0x000001F548902690, 102 bytes long.
 Data: <<project_prefere> 3C 70 72 6F 6A 65 63 74 5F 70 72 65 66 65 72 65 
{3833963} normal block at 0x000001F546BEE440, 8 bytes long.
 Data: <&#224;x&#148;H&#245;   > E0 78 94 48 F5 01 00 00 
..\zip\boinc_zip.cpp(122) : {313} normal block at 0x000001F546BE4930, 260 bytes long.
 Data: <                > 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
{298} normal block at 0x000001F546BE5940, 80 bytes long.
 Data: </c call Scripts\> 2F 63 20 63 61 6C 6C 20 53 63 72 69 70 74 73 5C 
{297} normal block at 0x000001F546BF99B0, 16 bytes long.
 Data: < &#166;&#191;F&#245;           > 08 A6 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{296} normal block at 0x000001F546BF9960, 16 bytes long.
 Data: <&#224;&#165;&#191;F&#245;           > E0 A5 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{295} normal block at 0x000001F546BF31F0, 32 bytes long.
 Data: <r0/checkpoint.xm> 72 30 2F 63 68 65 63 6B 70 6F 69 6E 74 2E 78 6D 
{294} normal block at 0x000001F546BF9CD0, 16 bytes long.
 Data: <&#184;&#165;&#191;F&#245;           > B8 A5 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{293} normal block at 0x000001F546BF98C0, 16 bytes long.
 Data: < &#165;&#191;F&#245;           > 90 A5 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{292} normal block at 0x000001F546BF9640, 16 bytes long.
 Data: <h&#165;&#191;F&#245;           > 68 A5 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{291} normal block at 0x000001F546BF9F00, 16 bytes long.
 Data: <@&#165;&#191;F&#245;           > 40 A5 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{290} normal block at 0x000001F546BF4E60, 48 bytes long.
 Data: <ComSpec=C:\Windo> 43 6F 6D 53 70 65 63 3D 43 3A 5C 57 69 6E 64 6F 
{289} normal block at 0x000001F546BF9870, 16 bytes long.
 Data: <&#200;<&#190;F&#245;           > C8 3C BE 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{288} normal block at 0x000001F546BF3310, 32 bytes long.
 Data: <SystemRoot=C:\Wi> 53 79 73 74 65 6D 52 6F 6F 74 3D 43 3A 5C 57 69 
{287} normal block at 0x000001F546BF9820, 16 bytes long.
 Data: <&#160;<&#190;F&#245;           > A0 3C BE 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{285} normal block at 0x000001F546BF9C80, 16 bytes long.
 Data: <x<&#190;F&#245;           > 78 3C BE 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{284} normal block at 0x000001F546BF95F0, 16 bytes long.
 Data: <P<&#190;F&#245;           > 50 3C BE 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{283} normal block at 0x000001F546BF96E0, 16 bytes long.
 Data: <(<&#190;F&#245;           > 28 3C BE 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{282} normal block at 0x000001F546BF9550, 16 bytes long.
 Data: < <&#190;F&#245;           > 00 3C BE 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{281} normal block at 0x000001F546BF9500, 16 bytes long.
 Data: <&#216;;&#190;F&#245;           > D8 3B BE 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{280} normal block at 0x000001F546BF3610, 32 bytes long.
 Data: <CUDA_DEVICE=0 PU> 43 55 44 41 5F 44 45 56 49 43 45 3D 30 00 50 55 
{279} normal block at 0x000001F546BF9BE0, 16 bytes long.
 Data: <&#176;;&#190;F&#245;           > B0 3B BE 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{278} normal block at 0x000001F546BE3BB0, 320 bytes long.
 Data: <&#224;&#155;&#191;F&#245;    6&#191;F&#245;   > E0 9B BF 46 F5 01 00 00 10 36 BF 46 F5 01 00 00 
{277} normal block at 0x000001F546BFA1D0, 16 bytes long.
 Data: < &#165;&#191;F&#245;           > 20 A5 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{276} normal block at 0x000001F546BF94B0, 16 bytes long.
 Data: <&#248;&#164;&#191;F&#245;           > F8 A4 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{275} normal block at 0x000001F546BF3850, 32 bytes long.
 Data: <C:/Windows/syste> 43 3A 2F 57 69 6E 64 6F 77 73 2F 73 79 73 74 65 
{274} normal block at 0x000001F546BFA090, 16 bytes long.
 Data: <&#208;&#164;&#191;F&#245;           > D0 A4 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{273} normal block at 0x000001F546BF3550, 32 bytes long.
 Data: <xjvf input.tar.b> 78 6A 76 66 20 69 6E 70 75 74 2E 74 61 72 2E 62 
{272} normal block at 0x000001F546BF9460, 16 bytes long.
 Data: < &#164;&#191;F&#245;           > 18 A4 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{271} normal block at 0x000001F546BF9B90, 16 bytes long.
 Data: <&#240;&#163;&#191;F&#245;           > F0 A3 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{270} normal block at 0x000001F546BF9410, 16 bytes long.
 Data: <&#200;&#163;&#191;F&#245;           > C8 A3 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{269} normal block at 0x000001F546BF9C30, 16 bytes long.
 Data: <&#160;&#163;&#191;F&#245;           > A0 A3 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{268} normal block at 0x000001F546BF9EB0, 16 bytes long.
 Data: <x&#163;&#191;F&#245;           > 78 A3 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{267} normal block at 0x000001F546BF93C0, 16 bytes long.
 Data: <P&#163;&#191;F&#245;           > 50 A3 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{265} normal block at 0x000001F546BF95A0, 16 bytes long.
 Data: < M&#191;F&#245;           > 80 4D BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{264} normal block at 0x000001F546BF4D80, 40 bytes long.
 Data: <&#160;&#149;&#191;F&#245;   &#240;&#205;&#193;F&#245;   > A0 95 BF 46 F5 01 00 00 F0 CD C1 46 F5 01 00 00 
{263} normal block at 0x000001F546BF97D0, 16 bytes long.
 Data: <0&#163;&#191;F&#245;           > 30 A3 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{262} normal block at 0x000001F546BF9AF0, 16 bytes long.
 Data: < &#163;&#191;F&#245;           > 08 A3 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{261} normal block at 0x000001F546BF3F10, 32 bytes long.
 Data: <Library/usr/bin/> 4C 69 62 72 61 72 79 2F 75 73 72 2F 62 69 6E 2F 
{260} normal block at 0x000001F546BF9320, 16 bytes long.
 Data: <&#224;&#162;&#191;F&#245;           > E0 A2 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{259} normal block at 0x000001F546BFA2E0, 992 bytes long.
 Data: < &#147;&#191;F&#245;    ?&#191;F&#245;   > 20 93 BF 46 F5 01 00 00 10 3F BF 46 F5 01 00 00 
{95} normal block at 0x000001F546BF3370, 32 bytes long.
 Data: <windows_x86_64__> 77 69 6E 64 6F 77 73 5F 78 38 36 5F 36 34 5F 5F 
{94} normal block at 0x000001F546BEE6C0, 16 bytes long.
 Data: <0S&#191;F&#245;           > 30 53 BF 46 F5 01 00 00 00 00 00 00 00 00 00 00 
{93} normal block at 0x000001F546BF5330, 40 bytes long.
 Data: <&#192;&#230;&#190;F&#245;   p3&#191;F&#245;   > C0 E6 BE 46 F5 01 00 00 70 33 BF 46 F5 01 00 00 
{72} normal block at 0x000001F546BEEB20, 16 bytes long.
 Data: < &#234; &#224;&#246;           > 80 EA 1E E0 F6 7F 00 00 00 00 00 00 00 00 00 00 
{71} normal block at 0x000001F546BEE3A0, 16 bytes long.
 Data: <@&#233; &#224;&#246;           > 40 E9 1E E0 F6 7F 00 00 00 00 00 00 00 00 00 00 
{70} normal block at 0x000001F546BEE210, 16 bytes long.
 Data: <&#248;W &#224;&#246;           > F8 57 1B E0 F6 7F 00 00 00 00 00 00 00 00 00 00 
{69} normal block at 0x000001F546BEE1C0, 16 bytes long.
 Data: <&#216;W &#224;&#246;           > D8 57 1B E0 F6 7F 00 00 00 00 00 00 00 00 00 00 
{68} normal block at 0x000001F546BEE850, 16 bytes long.
 Data: <P  &#224;&#246;           > 50 04 1B E0 F6 7F 00 00 00 00 00 00 00 00 00 00 
{67} normal block at 0x000001F546BEEEE0, 16 bytes long.
 Data: <0  &#224;&#246;           > 30 04 1B E0 F6 7F 00 00 00 00 00 00 00 00 00 00 
{66} normal block at 0x000001F546BEE030, 16 bytes long.
 Data: <&#224;  &#224;&#246;           > E0 02 1B E0 F6 7F 00 00 00 00 00 00 00 00 00 00 
{65} normal block at 0x000001F546BEE490, 16 bytes long.
 Data: <   &#224;&#246;           > 10 04 1B E0 F6 7F 00 00 00 00 00 00 00 00 00 00 
{64} normal block at 0x000001F546BEE620, 16 bytes long.
 Data: <p  &#224;&#246;           > 70 04 1B E0 F6 7F 00 00 00 00 00 00 00 00 00 00 
{63} normal block at 0x000001F546BEE800, 16 bytes long.
 Data: < &#192; &#224;&#246;           > 18 C0 19 E0 F6 7F 00 00 00 00 00 00 00 00 00 00 
Object dump complete.

</stderr_txt>
]]>


©2025 Universitat Pompeu Fabra